如何定义哪个进程使用了​​文件,而该文件被另一个进程

时间:2017-01-05 04:25:41

标签: c# file exception process

我试图找出哪个进程导致另一个进程使用该文件的异常。因此,我尝试做的唯一检查是,如果我找到了这个过程,这段代码并没有向我显示另一个进程使用的"文件的注释!"

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));

但没有任何帮助

如何知道哪个进程使用了​​文件,或者如何停止它?

我不会问如何避免它或因为它总是使用而阻止,所以不断有异常风险。

除了正确完成的尝试外,还有什么可能导致此问题?

0 个答案:

没有答案