簡體   English   中英

將目錄復制到JDrive / USB

[英]Copying directories to JDrive / USB

我可以簡單地通過文件來做到這一點,就像這樣:

public static void MoveAllFilesFromDesktopToJDrive()
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\Users\Tafe\Desktop\");
            DirectoryInfo Jdrive = new DirectoryInfo(@"J:\");

            foreach (FileInfo fi in di.GetFiles())
            {
                if (Path.GetFileName(fi.FullName) != "desktop.ini")
                {                      
                    fi.MoveTo(Jdrive.FullName + Path.GetFileName(fi.FullName));
                }    
            }
        }

但是嘗試對目錄執行相同的操作會告訴我無法跨卷移動目錄。 好的,那么這就是我嘗試過的:

 public static void MoveAllDirsFromDeskTopToJDrive()
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\Users\Tafe\Desktop\");
            DirectoryInfo Jdrive = new DirectoryInfo(@"J:\");

            foreach (DirectoryInfo dirs in di.GetDirectories())
            {
               Directory.CreateDirectory(Jdrive + Path.GetFileName(dirs.FullName)); 

            }
        }

這將復制文件的名稱,但不會復制內容,我只是像使用MoveAllFilesFromDesktopToJDrive()方法那樣移動內容,但是目錄包含子目錄和子目錄等等,因此我無法弄清楚。 我對遞歸了解甚少,但還不足以嘗試遞歸。 另外,可以這么難嗎? API中必須有更好的方法來簡化此過程? 如果沒有,那么完成此方法MoveAllFilesFromDesktopToJDrive()任何幫助將是救生員!

嘗試將其循環到代碼中的某個位置:

    string fileName = "test.txt";
    string sourcePath = @"C:\Users\Public\TestFolder";
    string targetPath =  @"C:\Users\Public\TestFolder\SubDir";

    // Use Path class to manipulate file and directory paths. 
    string sourceFile = System.IO.Path.Combine(sourcePath, fileName);
    string destFile = System.IO.Path.Combine(targetPath, fileName);

    // To copy a folder's contents to a new location: 
    // Create a new target folder, if necessary. 
    if (!System.IO.Directory.Exists(targetPath))
    {
        System.IO.Directory.CreateDirectory(targetPath);
    }

    System.IO.File.Copy(sourceFile, destFile, true);

有關更多詳細信息,請訪問以下鏈接: http : //msdn.microsoft.com/zh-cn/library/cc148994.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM