我有这样的文件名:

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/

10-11 22:09
查看更多