我试图找出哪个进程导致另一个进程使用该文件的异常。因此,我尝试做的唯一检查是,如果我找到了这个过程,这段代码并没有向我显示另一个进程使用的"文件的注释!"
try
{
using (Stream stream = new FileStream(doc.txt, FileMode.Open))
{
/// Writing place to doc.txt which throws exception sometimes
}
}
catch
{
textBox1.AppendText("File used by another process!");
}
异常将程序抛入错误的位置是写入文件
using (StreamWriter sw = File.AppendText(doc.txt))
sw.WriteLine(text);
所以我做了,首先,我发现我对文件的所有请求都确定已关闭sw.Close()
:
StreamWriter sw = File.AppendText(doc.txt);
sw.WriteLine(text);
sw.Close();
并且相同:
using (StreamReader sr = new StreamReader(doc.txt))
{
// some code
sr.Close();
}
我也在那里,我也不确定如何关闭它:
File.WriteAllText(doc.txt, text);
和
if (File.Exists(doc.txt))
wordsTyped.AddRange(File.ReadAllLines(doc.txt));
但没有任何帮助
如何知道哪个进程使用了文件,或者如何停止它?
我不会问如何避免它或因为它总是使用而阻止,所以不断有异常风险。
除了正确完成的尝试外,还有什么可能导致此问题?