在同一进程中的同一文件上创建2个FileStream

Ser*_*ock 6 .net c# file-sharing filestream

我正在尝试创建一个将自动删除的临时文件.

stream = new FileStream(
           tmpFilePath, 
           FileMode.OpenOrCreate, 
           FileAccess.ReadWrite, 
           FileShare.ReadWrite, 
           4096, 
           FileOptions.DeleteOnClose|FileOptions.RandomAccess
           );
Run Code Online (Sandbox Code Playgroud)

该文件将由第三方API使用,该API也将创建FileStream:

stream = new FileStream(
          tmpFilePath, 
          FileMode.Open, 
          FileAccess.Read, 
          FileShare.Read);
Run Code Online (Sandbox Code Playgroud)

我想我已经尝试了所有可能的标志组合,但我总是得到一个"进程无法访问文件'XXX',因为它正在被另一个进程使用......"

难道我做错了什么?有办法吗?

Sni*_*ves 0

听起来好像您可能想使用内存映射文件作为与多个进程共享单个文件的方法。

http://msdn.microsoft.com/en-us/library/system.io.memorymappedfiles.memorymappedfile.aspx