0

我有一个包含大约 200,000 张 jpeg 图像的文件夹。以下是我可以找到的文件名格式

  1. BATCHID_GROUPID 例如:501234_20123.jpg
  2. BATCHID_GROUPID 例如。501235_20124_1.jpg、501235_20124_2.jpg、501235_20124_3.jpg。每个此类图像最多有 10 个 BATCHID_GROUPID 图像。我的意思是这个集合的最大值是 501235_20124_10.jpg

我需要获取所有不以 _x 或 _xx 结尾的图像,即 _1.jpg 或 _2.jpg 或 _10.jpg 并选择 BATCHID 并将其复制并将其通过 FTP 传输到其他位置

对于以 _x 或 _xx 结尾的文件,我需要选择 BATCHID 并创建一个名称为 batchID 的文件夹,并将所有以 _X 到 _xx 结尾的文件移动到该文件夹​​中。

谢谢

4

1 回答 1

0

尝试在您的文件名上使用String.Split,检查长度以确定您要复制它的位置并将第一个索引作为您的 BATCHID:

像这样的东西:

DirectoryInfo di = new DirectoryInfo("SourcePath");
IEnumerable<FileInfo> fileinfo = di.EnumerateFiles();
foreach(FileInfo fi in fileinfo)
{
    string[] tmp = fi.Name.Split('_');
    if (tmp.Length == 3)
    {
        if (!Directory.Exists("YourPath"))
        {
            Directory.CreateDirectory("YourPath" + tmp[0].ToString());
            fi.MoveTo("YourPath" + tmp[0].ToString() + @"\" + fi.Name);

        }
        else
            fi.MoveTo("YourPath" + + tmp[0].ToString() + @"\" + fi.Name);

    }
    else if (tmp.Length == 2)
    {
        //Copy Batch Id and Ftp logic
    }
}
于 2012-06-07T03:13:05.333 回答