C# File.WriteAllText和File.Copy问题

C# File.WriteAllText和File.Copy问题,c#,C#,我正在使用file.writealText创建一个文件,并使用file.Copy方法将同一文件复制到另一个目录。但由于某些原因,它不会在源目录中创建文件,而是将其复制到目标目录 有什么问题吗?请让我知道 File.WriteAllText(sourceFilePath, Contents.ToString()); File.Copy(sourceFilePath, destFilePath); 按照您的示例,方法调用是并发的吗 如果是这样,您可以调用File.writealText两次来避免这

我正在使用
file.writealText
创建一个文件,并使用
file.Copy
方法将同一文件复制到另一个目录。但由于某些原因,它不会在源目录中创建文件,而是将其复制到目标目录

有什么问题吗?请让我知道

File.WriteAllText(sourceFilePath, Contents.ToString());
File.Copy(sourceFilePath, destFilePath);

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

如果是这样,您可以调用File.writealText两次来避免这个问题,尽管我不知道为什么会发生这种情况


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

您知道文件确实创建了,否则File.copy()会引发异常。而且File.Copy()永远不会像File.Move()那样删除源文件

最简单的解释是,该文件只是在一个您意想不到的文件夹中创建的。如果
sourceFilePath
不是绝对路径,则此选项很常见。当您使用OpenFileDialog并将其RestoreDirectory属性设置为false时,通常会发生这种情况。比如说


通过始终使用绝对路径来避免这种情况。GetFolderPath()是您的朋友。

您正在向哪个文件夹写信?这可能是Vista/7文件夹虚拟化问题吗


如果您能向我们展示您正在使用的实际代码,这将非常有用。

此行为与其他路径一致吗?这次它创建了一个文件,但它正在将旧内容写入文本文件。Copy可以在destinaton目录下正常工作。它正在写入旧内容吗?或者您正在查看文件的旧版本?更多证据表明它正在另一个目录中创建文件。