[英]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.