2 回答

TA貢獻1779條經驗 獲得超6個贊
File.Move需要目標文件,而不僅僅是目標文件夾。您需要決定如何命名目標文件夾中移動的文件。它可以是與源文件相同的名稱,也可以是您選擇的其他名稱。如果您想保留舊名稱,Path.GetFilename 可能會有所幫助。
另請注意,EnumerateFiles比 GetFiles 更好,因為它允許您啟動移動操作,而無需先加載內存中的所有文件名。
try
{
string dest = @"C:\Users\Billeh\Desktop\Test";
foreach (var file in Directory.EnumerateFiles(@"C:\Users\Billeh\Desktop\")
{
string destFile = Path.Combine(dest, Path.GetFileName(file))
if(!File.Exists(destFile))
File.Move(file, destFile);
}
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
還要考慮 File.Move 不能覆蓋目標文件夾中的現有文件。如果文件存在,則會引發 IOException。所以,如果你想覆蓋你需要刪除目標文件之前,但無論如何,你需要添加一個檢查File.Exists

TA貢獻1820條經驗 獲得超10個贊
您可以使用Directory.Move(string, string)
方法,而不是逐個文件移動文件。
句法
Directory.Move(sourceDirPath, DestinationDirPath)
- 2 回答
- 0 關注
- 327 瀏覽
添加回答
舉報