0
var outputDirectory = new DirectoryInfo(@"G:\Local\Syndicationtest");
var sourceDirectory = new DirectoryInfo(@"G:\Local\Syndicationtest");
var sourceFiles = sourceDirectory.GetFiles();
foreach (var item in sourceFiles)
{
    FileHelper.Copy(item, outputDirectory);
    FileHelper.Move(FileHelper.Zip(item), new DirectoryInfo(@"G:\Local\Syndicationtest\History"));

}

ファイルの種類の拡張子に基づいてファイルを移動する必要があります。つまり、ソース ファイルにはすべての種類の拡張子ファイルが含まれています。次の「.xml」、「.dat」、「.txt」、「.csv」のファイルの種類をフィルター処理する必要があります。 "、".zip"、".doc" を作成し、それらのファイルのみを目的の場所に移動します

4

4 に答える 4

0

使用するPath.GetExtension()

MSDN

あなたのコード:

var outputDirectory = new DirectoryInfo(@"G:\Local\Syndicationtest");
var sourceDirectory = new DirectoryInfo(@"G:\Local\Syndicationtest");
FileInfo[] sourceFiles = sourceDirectory.GetFiles();
var extensions = new List<string> { ".xml", ".dat", ".txt", ".csv", ".zip", ".doc" };

foreach (FileInfo item in sourceFiles)
{        
    if(extensions.Contains(item.Extension))
    {
        FileHelper.Copy(item, outputDirectory);
        FileHelper.Move(FileHelper.Zip(item), new DirectoryInfo(@"G:\Local\Syndicationtest\History"));
    }   
}

LINQ を使用する場合は、Michael Perrenoud のソリューションをお勧めします。

于 2013-11-12T21:03:54.237 に答える
-2

LastIndexfilePath でofを取得し.、最後まで読み取って拡張子を取得できます。

次に、必要な拡張機能のセットで確認できます。

これを試して:

                    var outputDirectory = new DirectoryInfo(@"G:\Local\Syndicationtest");
                    var sourceDirectory = new DirectoryInfo(@"G:\Local\Syndicationtest");
                    String[] FileExt = new String[] { ".xml", ".dat", ".txt", ".csv", ".zip", ".doc" };
                    var sourceFiles = sourceDirectory.GetFiles();

                    foreach (var item in sourceFiles)
                    {
                        if ((item.Contains(".")) && (FileExt.Contains(item.Substring(item.LastIndexOf("."), 4))))
                        {
                            FileHelper.Copy(item, outputDirectory);
                            FileHelper.Move(FileHelper.Zip(item), new DirectoryInfo(@"G:\Local\Syndicationtest\History"));
                        }
                    }
于 2013-11-12T21:10:07.577 に答える