我有这样的文件名:
414_gtmlk_videos_Mas_147852_hty1147.xls
414_gtmlk_videos_Mas_P147852_hty1147.txt
我想创建一个工作来检查文件名,并在文件名中的
Mas
之后加入部分(147852-P147852)并使用该零件名称创建一个文件夹(文件夹名称应为:147852-P147852)。
最后将每个文件移到他的文件夹中。
最佳答案
我下面有一些C#代码。第一部分执行以下操作:
获取路径
获取文件名
修改完整路径以获取__Mas_和last _之间的“ 147852”部分
string pathToGetFile = @"C:\\";
string[] filePaths = System.IO.Directory.GetFiles(pathToGetFile +@"\\", "*_Mas_*");
string[] fullName = new string[filePaths.Length];
for (int i = 0; i < filePaths.Length; i++)
{
fullName[i] = filePaths[i].Substring(filePaths[i].LastIndexOf("\\") + 1);
filePaths[i] = filePaths[i].Substring(filePaths[i].LastIndexOf("_Mas_") + 5);
int l = filePaths[i].IndexOf("_");
filePaths[i] = filePaths[i].Substring(0, l);
现在,您可以使用自己的名字创建文件夹
filePaths现在类似于:147852,P147852
if (!Directory.Exists(@"C:\" + filePaths[i]))
System.IO.Directory.CreateDirectory(@"C:\" + filePaths[i]);
}
现在只需将文件移动到新目录
for (int i = 0; i < filePaths.Length; i++)
{
string sourceFile = System.IO.Path.Combine(pathToGetFile, fullName[i]);
string destFile = System.IO.Path.Combine(@"C:\" + filePaths[i], @"C:\" + filePaths[i] + "\\" + fullName[i]);
File.Copy(sourceFile,destFile,true);
}
现在,发生了什么
档案:
C:\ 414_gtmlk_videos_Mas_147852_hty1147.xls
C:\ 414_gtmlk_videos_Mas_P147852_hty1147.txt
将根据以下内容复制它们:
C:\ 147852 \
C:\ P147852 \
关于c# - 批处理从文件名中提取一部分,并使用此部分创建文件夹,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42033925/