2014-09-24 120 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()来合并路径名称。它会自动使用适当的目录分隔符,因此您的代码更具可移植性。

相关问题