使用中的文件检测不适用于图片/文件夹

时间:2011-06-07 14:20:42

标签: c# programming-languages

我正在使用此代码在file打开时显示错误:

try
{
    stream = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None);
}
catch (IOException)
{
    MessageBox.Show("file is open!");
}

问题是代码不能处理图片(jpg,bmp等)和文件夹。

我有什么遗失的吗?

2 个答案:

答案 0 :(得分:2)

不知道我是否理解你想做什么......我想你想知道某人是否正在查看该图像。

仅当某个应用程序具有打开的句柄时,文件才会“打开”。当您使用图片查看器时,查看器可以(很可能)打开文件,读取文件并立即关闭文件。因此,文件本身不使用。

这适用于所有类型的文件,但许多文件仍在保持打开状态(例如,Office应用程序通常会保持文件打开)。

通常,您不应该假设“文件句柄是打开的”和“某种方式的人类用户使用'文件”操作完全相关。该文件可以是开放的,但没有人在进行交互(可能是搜索守护程序正在索引它)。另一方面,文件可以对用户“可见”,但在文件系统上关闭。

答案 1 :(得分:0)

此代码在您的方案中不起作用。然后打开图片系统读取文件,解压缩图像并显示给您并关闭文件。您可以在Windows中打开时将其删除。