我有一个不寻常的问题。我的问题是我有一个包含文件名的文件路径集合。当代码循环遍历集合时,它接受字符串并创建FileInfo对象。使用此对象,然后使用MoveTo方法将文件移动到另一个位置。
这一切都很有效,直到它到达一个长度为零的文件并说它找不到文件。如果我获取此文件并在不同的应用程序中创建一个FileInfo对象,无论大小如何,它都可以工作。有谁知道造成这种情况的原因以及如何解决这个问题?下面的相关代码段
IList<string> files = new List<string >();
files.add(file1);
files.add(file2);
foreach (string filepath in files)
{
FileInfo file = new FileInfo (filepath);
string newlocation = Path.Combine(dest, file.name);
file.MoveTo (newlocation); //exception thrown here on zero length
}
答案 0 :(得分:1)
尝试在file.Refresh()
之前致电file.MoveTo(...)
。
在此页面中阅读备注 https://msdn.microsoft.com/en-us/library/system.io.fileinfo.exists.aspx
答案 1 :(得分:0)
你需要使用
System.IO.File.Move(Sourcefile, DestinationFile);
更多详情:https://msdn.microsoft.com/en-us/library/system.io.file.move(v=vs.110).aspx