System.IO.File.CreateText(@"C:\\ProgramData\\Password Manager\\pwd.dat");
这使文件完美无缺。
System.IO.File.WriteAllLines(@"C:\\ProgramData\\Password Manager\\pwd.dat", pwd);
但这一行出错了
“进程无法访问文件'C:\ ProgramData \ Password Manager \ pwd.dat',因为它正由另一个进程使用。”
有没有办法在写入之前关闭文件?
答案 0 :(得分:5)
您无需使用CreateText
。只需致电WriteAllLines
,即可为您创建文件。目前,CreateText
返回的流保留在它创建的文件上,这就是抛出错误的原因。
答案 1 :(得分:4)
File.CreateText不仅创建文件,而且打开它并返回一个流来写入文件 您的后续呼叫会自行阻止该文件
尝试
StreamWriter sw = File.CreateText(@"C:\\ProgramData\\Password Manager\\pwd.dat");
sw.Close();
sw.Dispose();
或只是
using(File.CreateText(@"C:\\ProgramData\\Password Manager\\pwd.dat")) {}
(using statement负责关闭并处理文件)
但是,查看代码是完全没必要的,因为如果文件不存在,File.WriteAllLines会创建该文件。