2013-03-05 142 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