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。このタイプの各画像には、BATCHID_GROUPID の画像が最大 10 個含まれます。つまり、このセットの最大値は 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 に答える