需要检查某个文本文件是否处于打开状态..如果是,需要使用c#关闭编辑器

本文关键字:编辑器 如果 于打开 检查 文本 文件 是否 状态 | 更新日期: 2023-09-27 18:11:56

我在c:'my_files'test1.txt中放置了一个文本文件。使用c#时,我需要检查文件是否处于打开状态。如果是,我需要关闭编辑器。

在下面的代码中,如果文件处于打开状态,它不会进入catch块。

string path = @"c:'my_files'test1.txt";
FileStream stream = null;
try
{
    stream = File.Open( path, FileMode.Open, FileAccess.Read, FileShare.None);
}
catch (IOException)
{
    //the file is unavailable because it is:
    //still being written to
    //or being processed by another thread
    //or does not exist (has already been processed)
    //return true;
    Console.WriteLine("true");
}
finally
{
    if (stream != null)
        stream.Close();
}

需要检查某个文本文件是否处于打开状态..如果是,需要使用c#关闭编辑器

您无法确定Notepad.exe应用程序是否在内存中打开了文件-它不保留打开的文件流。您可能能够检查记事本应用程序进程窗口标题中有文件的名称,但它没有文件路径,因此这是非常脆弱的。

由于记事本没有打开文件,试图关闭文件是没有意义的。你可以试着关闭记事本如果你认为文件已经复制到它的内存缓冲区是你认为它是…