0

tempDownloadFolder のサブディレクトリにあるファイルとコピーするコードを変更するにはどうすればよいですか?

private void moveFiles()
{
   DirectoryInfo di = new DirectoryInfo(tempDownloadFolder);
   FileInfo[] files = di.GetFiles();

   foreach (FileInfo fi in files)
   {
       if (fi.Name != downloadFile)
        File.Copy(tempDownloadFolder + fi.Name, destinationFolder + fi.Name, true);
   }

}
4

4 に答える 4

2

再帰的な検索を行う必要があります。

非常に大まかな例:

    private void copyFiles(string filePath)
    {
        DirectoryInfo di = new DirectoryInfo(filePath);
        FileInfo[] files = di.GetFiles();

        foreach (FileInfo fi in files)
        {
            // test if fi is a directory
            // if so call copyFiles(fi.FullName) again
            // else execute the following
            if (fi.Name != downloadFile) File.Copy(filePath+ fi.Name, destinationFolder + fi.Name, true);
        }

    }
于 2013-05-23T11:50:21.790 に答える
1

すべてのサブディレクトリのファイルが必要な場合は、次のSearchOptionパラメーターを使用します。

DirectoryInfo di = new DirectoryInfo(tempDownloadFolder);
di.GetFiles("*.*", SearchOption.AllDirectories);

FileInfo[] files = di.GetFiles();

foreach (FileInfo fi in files)
{
   if (fi.Name != downloadFile)
   File.Copy(tempDownloadFolder + fi.Name, destinationFolder + fi.Name, true);
}
于 2013-05-23T11:48:43.713 に答える