首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要检查特定的文本文件是否处于打开状态...如果是,则需要使用c#关闭编辑器

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

Stack Overflow用户
提问于 2016-10-06 20:12:14
回答 1查看 72关注 0票数 0

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

在下面的代码中,如果文件处于打开状态,则不会转到catch块。

代码语言:javascript
运行
复制
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();
}
EN

回答 1

Stack Overflow用户

发布于 2016-10-06 21:27:10

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

由于记事本没有打开文件,因此尝试关闭该文件没有任何意义。你可以尝试关闭记事本,如果你认为文件是复制到它的内存缓冲区是你认为它是…

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39895659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档