2013-03-05 145 views
5

我需要一种方式来检查一些MMF(内存映射文件)是否存在或没有以管理的方式访问它之前。如何检查内存映射文件是否存在?

+4

为什么不是一个真正的问题? – 2013-03-05 20:33:30

+1

'File.Exists'不会诀窍吗? http://msdn.microsoft.com/en-us/library/system.io.file.exists.aspx – 2013-03-05 20:40:24

+0

要使用雷蒙德陈的话:“如果你需要知道,那么你做错了”。一旦确定只有一个进程可以同时访问mmf,就会发现这一点。当其中一个进程意外终止时,你会做一些有意义的事情。 – 2013-03-05 21:50:38

回答

6

您可以使用:MemoryMappedFile.OpenExisting方法。如果指定的文件不存在,则会引发FileNotFoundException

+1

我可以毫无例外地做到吗?这根本不是一个好习惯! – 2013-03-05 20:42:58

+1

@MohamedSakherSawan:至少我知道,没有任何方法可以让你做你想做的事。但是这完全不是问题,因为管理具有异常的程序流是非常常见的*,如果不是经常的话*只能在程序中管理IO访问。 – Tigran 2013-03-05 21:32:30

+1

但是这对性能来说非常糟糕!你可能是正确的IO。 – 2013-07-10 03:02:28