创建后无法立即写入文件

use*_*208 2 c# io hidden file 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);
}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,第一次运行此代码时,它创建文件就好了,但是没有写入它,直到我退出应用程序并重新运行它.第二,第三等运行工作正常,它只是最初的麻烦.有任何想法吗?文件名和目录是随机的,因为我只是测试一些东西,所以如果你正在测试某些东西,你应该能够将它们改成你想要的东西.提前致谢

Pet*_*PAD 7

你应该在File.Create之后加上.Close()

File.Create(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/data.dat").Close();
Run Code Online (Sandbox Code Playgroud)

MSDN File.Create上阅读更多内容

或者你可以这样做

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

阅读更多MSDN File.WriteAllText


Pio*_*cik 6

File.Create 正在将流返回到文件,您可能要在尝试再次重新打开之前关闭它.