如何检查内存映射文件是否存在?

9
我需要一种以托管方式检查某个MMF(内存映射文件)是否存在的方法,然后再访问它。

4
为什么不问一个真正的问题? - Saw
1
File.Exists 不起作用?http://msdn.microsoft.com/en-us/library/system.io.file.exists.aspx - Ilya Ivanov
4
@HansPassant,我不同意你的观点。许多应用程序可能希望同时从内存映射文件中读取,否则共享内存的意义在哪里?如果一个应用程序想要从共享内存中读取,但只有在存在时才这样做,否则它会从另一个来源获取数据,那该怎么办呢? - Nathan Sweet
1
这绝对是一个合法的问题。您可以使用许多方法来确保只有一个进程可以在任何时候处理内存映射文件。在调用OpenExisting之前,您仍然可能想要检查是否有另一个进程已经创建了MMF,并且可能会提前返回以防止不必要的代码执行。 - SomeInternetGuy
1
这是一个合理的问题,并已经得到了合理的答案。它不应该被关闭。 - BernieP
显示剩余3条评论
1个回答

8

1
我能不用异常处理来做吗?这绝不是一个好的编程习惯! - Saw
1
@MohamedSakherSawan:至少在我所知道的范围内,没有任何方法可以让你做你想做的事情。但这并不是问题,因为使用异常来管理程序流程是一种非常常见的方式,如果不是唯一可能的方式,来管理程序中的IO访问。 - Tigran
3
但这会严重影响性能!对于IO方面你说得没错。 - Saw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接