在以下代码中:
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);
}
由于某种原因,第一次运行此代码时,它创建文件就好了,但是没有写入它,直到我退出应用程序并重新运行它。第二,第三等运行工作正常,它只是最初的麻烦。有任何想法吗?文件名和目录是随机的,因为我只是测试一些东西,所以如果你正在测试某些东西,你应该能够将它们改成你想要的东西。提前致谢
答案 0 :(得分:7)
你应该在 File.Create
之后加上 .Close()File.Create(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/data.dat").Close();
了解详情
或者你可以这样做
File.WriteAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/data.dat", temp);
File.SetAttributes(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/data.dat", FileAttributes.Hidden);
了解详情
答案 1 :(得分:6)
File.Create
正在将您的流返回到文件,您可能要在尝试重新打开它之前关闭它。
答案 2 :(得分:4)
File.AppendAllText()将创建该文件(如果该文件尚不存在),因此您可以这样做:
File.AppendAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/data.dat", temp);
File.SetAttributes(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/data.dat", FileAttributes.Hidden);
看看是否有帮助:)
答案 3 :(得分:3)
跳过创建文件,如果不存在,AppendAllText方法无论如何都会创建它。 我猜文件.create可能会打开文件锁或文件句柄。