标签列表
如何检查内存映射文件是否存在?
c#
.net
visual-studio-2010
ipc
memory-mapped-files
9
9
我需要一种以托管方式检查某个MMF(内存映射文件)是否存在的方法,然后再访问它。
-
Saw
8
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
8
你可以使用
MemoryMappedFile.OpenExisting
方法。如果指定的文件不存在,它会引发
FileNotFoundException
异常。
-
Tigran
3
1
我能不用异常处理来做吗?这绝不是一个好的编程习惯!
- Saw
1
@MohamedSakherSawan:至少在我所知道的范围内,没有任何方法可以让你做你想做的事情。但这并不是问题,因为使用异常来管理程序流程是一种非常常见的方式,如果不是唯一可能的方式,来管理程序中的IO访问。
- Tigran
3
但这会严重影响性能!对于IO方面你说得没错。
- Saw
回答链接
网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接
相关问题
4
如何检查XAP文件中是否存在文件?
3
C#内存映射文件是否会扩展?
26
UWP 如何检查文件是否存在
6
内存映射文件是否仍然保留在物理内存中?
121
如何检查文件夹中是否存在文件?
8
检查资源文件是否存在。
7
内存映射文件:如何监控内存使用情况
4
任何C或C++标准是否认可内存映射文件的存在?
9
如何异步刷新内存映射文件?
27
如何检查 Azure Blob 文件是否存在
File.Exists
不起作用?http://msdn.microsoft.com/en-us/library/system.io.file.exists.aspx - Ilya Ivanov