我需要读取一个打开的文件,以便在程序的其他部分进行写入
const string fileName = "file.bin";
FileStream create = File.Open(fileName, FileMode.Create, FileAccess.Write, FileShare.Read);
FileStream openRead = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
Run Code Online (Sandbox Code Playgroud)
最后一行引发IOException:
"The process cannot access the file because it is being used by another process"
Run Code Online (Sandbox Code Playgroud)
请帮助正确配置File.Open参数。
在两个语句中都将FileShare参数更改为FileShare.ReadWrite:
FileStream create = File.Open(fileName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
FileStream openRead = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
Run Code Online (Sandbox Code Playgroud)
ReadWrite 来自MSDN的标志说明:
允许随后打开文件以进行读取或写入。如果未指定此标志,则打开文件以进行读取或写入的任何请求(通过此过程或其他过程)都将失败,直到关闭文件为止。