c# - 创建后无法立即写入文件

标签 c# file io hidden file-attributes

在下面的代码中:

if (File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/data.dat"))
{
    File.AppendAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/data.dat", temp);
}
else
{
    File.Create(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/data.dat");
    File.SetAttributes(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/data.dat", FileAttributes.Hidden);
    File.AppendAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/data.dat", temp);
}

出于某种原因,第一次运行这段代码时,它会很好地创建文件,但不会写入文件,直到我退出应用程序并重新运行它时才会写入。第 2、3 次等等运行正常,只是最初的问题很棘手。有任何想法吗?文件名和目录是随机的,因为我只是在测试一些东西,所以如果你正在测试一些东西,你应该能够将它们更改为任何你想要的。提前致谢

最佳答案

你应该在 File.Create 之后放置 .Close()

File.Create(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/data.dat").Close();

阅读更多信息 MSDN File.Create

或者你可以这样做

File.WriteAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/data.dat", temp);         
File.SetAttributes(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/data.dat", FileAttributes.Hidden);

阅读更多信息 MSDN File.WriteAllText

关于c# - 创建后无法立即写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8785395/

相关文章:

c# - 有没有更好的方法将动态输入在线传递给 DataTestMethod? IE。如何以编程方式为数据驱动测试创建测试输入

Java - 文件 - mkdirs 不创建目录

c# - 这个c#文件属于哪个类

Python-如何对文件中的值求和

python - 无法加载包含腌制数据的文件 - Python .npy I/O

json - Aeson如何使用Data.Text.Lazy.IO解析JSON文件

ruby - ruby 的 StringIO 类到底是什么?

c# - 在扩展方法中保存状态

c# - C# 数组中的协方差被破坏?

c# - inproc 和 outproc 的区别