在我的应用程序中,我获取硬盘的序列号并将其写入文本文件(如果不存在则创建文件)..这是我的代码:
string path = @"d:\RegisterKey.txt";
File.Create(path);
TextWriter tw = new StreamWriter(path);
tw.WriteLine(GetHDSerialNo);
tw.Close();
文件创建成功,但TextWriter步骤中发生问题:
拒绝访问路径'd:\ RegisterKey.txt'。
尝试以管理员身份运行Visual Studio但未解决问题。
任何建议
提前致谢
Abdusalam
答案 0 :(得分:4)
你有两个流开放。 File.Create
创建并返回一个新流,默认情况下不允许共享写入。然后,您尝试使用另一个流写入它,该流被阻止,因为File.Create
的流仍处于打开状态。相反,您可以将该流传递给StreamWriter
。像这样调整你的代码:
string path = @"d:\RegisterKey.txt";
using (var stream = File.Create(path))
{
using(TextWriter tw = new StreamWriter(stream))
{
tw.WriteLine(GetHDSerialNo);
}
}
答案 1 :(得分:1)
File.Create
方法创建文件并打开FileStream,因此您的文件已经打开。
按照你的方式:
var stream = File.Create(path);