我使用File.WriteAllText
创建文件,并使用File.Copy
方法将同一文件复制到另一个目录。但由于某种原因,它不会在源目录中创建文件,但会将其复制到目标目录。
可能是什么问题?请告诉我。
File.WriteAllText(sourceFilePath, Contents.ToString());
File.Copy(sourceFilePath, destFilePath);
答案 0 :(得分:7)
嗯,你知道文件实际上已经创建了,否则File.Copy()会抛出异常。 File.Copy()从不删除源文件,如File.Move()那样。
最简单的解释是文件刚刚在您不期望的文件夹中创建。如果sourceFilePath
不是绝对路径,那么这种情况很常见。当您使用OpenFileDialog且其RestoreDirectory属性设置为false时,通常会发生这种情况。例如。
始终使用绝对路径来避免这种情况。 Environment.GetFolderPath()是你的朋友。
答案 1 :(得分:0)
方法是否按照您的示例调用并发?
如果是这样,你可以调用File.WriteAllText两次以解决问题,但我不知道它为什么会发生。
您可以在复制之前执行File.Exists检查,或者尝试使用Thread.Sleep(100)并查看它是磁盘I / O类型问题。
答案 2 :(得分:0)
你在写什么文件夹?这可能是Vista / 7文件夹虚拟化问题吗?
如果您可以向我们展示您正在使用的实际代码,那将会很有帮助。