Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何知道该文件是否正在计算机中使用?_C#_.net_File_Stream - Fatal编程技术网

C# 如何知道该文件是否正在计算机中使用?

C# 如何知道该文件是否正在计算机中使用?,c#,.net,file,stream,C#,.net,File,Stream,如何知道使用C的计算机中是否正在使用C:\FOO\BAA\filename.extension文件 我试过: try { var file = File.OpenRead(fileName); } catch { // .. } 但只有当文件在当前时间被另一个进程访问时,它才会返回异常。 提前谢谢 如果您试图确定最近是否使用了某个特定文件,则可以检查该方法。它将告诉您上次访问该文件的时间(假设没有人弄乱它) 否则,要确定某个文件当前是否正在使用,您发布的代码应该可以工作。“但只

如何知道使用C的计算机中是否正在使用
C:\FOO\BAA\filename.extension
文件

我试过:

try { 
 var file = File.OpenRead(fileName); 
} catch { 
   // .. 
}

但只有当文件在当前时间被另一个进程访问时,它才会返回异常。
提前谢谢

如果您试图确定最近是否使用了某个特定文件,则可以检查该方法。它将告诉您上次访问该文件的时间(假设没有人弄乱它)


否则,要确定某个文件当前是否正在使用,您发布的代码应该可以工作。

“但只有当该文件在当前时间被另一个进程访问时,它才会返回异常”。。。那么,“被利用”是什么意思?它可以被另一个进程使用,这是您获取exception.Off主题的地方,但与您的代码示例相关:在未指定异常类型的情况下,永远不要执行盲
catch{/*…*/}
。这是一种糟糕的形式,因为存在一些您永远不应该处理的异常(例如
OutOfMemoryException
)。相反,只捕获您专门知道如何处理的异常类型,例如,
UnauthorizedAccessException
@vucetica:当我说“正在使用”时,我的意思是如果文件当前在windows中打开。@Jack and只能打开,并且只有在其他进程打开它时,因此,如果您的代码在另一个进程打开文件时抛出异常,那么它工作正常。@Steve-有时您不知道这些人在想什么。当我说“正在使用”时,我的意思是如果文件当前在windows中打开。@Jack-那么您发布的代码应该可以工作。有什么问题吗?我需要的是这样的:
Process[]processlist=Process.getprocesss();foreach(processlist中的进程进程){if(proc.MainModule.FileName.Equals(path)){return true;}}
它给出了一个异常:
win32Exception:access denied
@Jack-这与您的问题有什么关系?您可能没有权限。也许,如果你描述一下(在你的问题中)你正在努力实现的目标,我们可能会更好地帮助你。