File.WriteAllText和File.Copy问题

nav*_*100 5 c#

我正在创建一个文件File.WriteAllText,使用File.Copy方法将相同的文件复制到另一个目录.但由于某种原因,它不会在源目录中创建文件,但会将其复制到目标目录.

可能是什么问题呢?请告诉我.

File.WriteAllText(sourceFilePath, Contents.ToString());
File.Copy(sourceFilePath, destFilePath);
Run Code Online (Sandbox Code Playgroud)

Han*_*ant 7

好吧,你知道文件实际上已经创建了,否则File.Copy()会抛出异常.而File.Copy()从不删除源文件,就像File.Move()那样.

最简单的解释是文件刚刚在您不期望的文件夹中创建.如果sourceFilePath不是绝对路径,这是常见的.当您使用OpenFileDialog且其RestoreDirectory属性设置为false时,通常会发生这种情况.例如.

始终使用绝对路径来避免这种情况.Environment.GetFolderPath()是你的朋友.


Ant*_*och 0

按照您的示例,方法调用是否并发?

如果是这样,您可以调用 File.WriteAllText 两次来规避该问题,但我不知道为什么会发生这种情况。

您可以在复制之前执行 File.Exists 检查,或者尝试 Thread.Sleep(100) 并查看这是磁盘 I/O 类型问题。