2014-09-24 83 views
0

我有這樣的:移動文件到另一個文件夾

File.Move(file, trashFolderPath + "\\" + file); 

其中file是某個值,如:

C:\mytest\Images\Hannah, Pow, 199169, 211 Addendum.pdf 

和第二個參數一起具有類似於值:

"C:\\mytest\\ImagesNotFound\\C:\\mytest\\Images\\Hannah, Pow, 199169, 211 Addendum.pdf" 

但我得到這個例外:

The given path's format is not supported. 
+2

這是因爲第二個參數有兩次C:\\。看起來應該是''C:\\ mytest \\ Images \\ Hannah ....「' – 2014-09-24 20:47:00

+0

您是否期待這個** C:\\ mytest \\ ImagesNotFound \\ C:\\ **是一個有效的路徑? – Neolisk 2014-09-24 20:47:08

+0

您應該使用'File'類來獲取沒有目錄擴展名的文件名。 – 2014-09-24 20:47:53

回答

4

您正在使用完整文件名稱,其中包含完整路徑,這就是Target路徑正在使用的內容。注意目錄字母C:。用途:

Path.GetFileName

File.Move(file, trashFolderPath + "\\" + Path.GetFileName(file)); 

您也可以使用Path.Combine而不將路徑,如:

File.Move(file, Path.Combine(trashFolderPath,Path.GetFileName(file))); 
2

「C:\ mytest的\ ImagesNotFound \ C:\ mytest的\圖片\漢娜,戰俘,199169,211Addendum.pdf「不是有效的文件路徑。所以你需要get the file namefile,然後附加到trashFolderPath

File.Move(file, Path.Combine(trashFolderPath, Path.GetFileName(file)); 

使用Path.Combine()來合併路徑名稱。它會自動使用適當的目錄分隔符,因此您的代碼更具可移植性。

相關問題