windows 8 c#同时读取和写入文件
本文关键字:文件 读取 windows | 更新日期: 2023-09-27 17:52:43
我有一个将字节数组写入文件(StorageFile
)的过程。该进程以周期性间隔运行,同时我需要在另一个进程中从文件的开头读取。这两个进程属于不同的类别。当我开始读取文件时,写操作失败,出现拒绝访问错误。
这里的文件是app文件夹中的StorageFile
。
write方法调用:
IRandomAccessStream randomStream = await targetFile.OpenAsync(FileAccessMode.ReadWrite);
Stream stream = randomStream.AsStreamForWrite();
read方法调用:
IRandomAccessStream randomStream = await targetFile.OpenAsync(FileAccessMode.Read);
Stream stream = randomStream.AsStreamForRead();
两个操作同时从不同的方法执行,导致访问被拒绝错误。似乎我可以在同一方法中使用读/写,同时打开写。但是如何从不同的方法?
我们是否有任何类似于早期的System.IO.FileShare
,以便我可以明确地说,这个文件需要从同一应用程序中的另一个位置访问?
除了切换到数据库类型设置之外,我建议缓冲对数组的写入,并根据缓冲区填充和/或特定的时间间隔将它们写入块中。除非您需要精确到毫秒的最新和最好的性能,否则我怀疑人们不会注意到性能影响。您必须调整缓冲区大小,以确保您给阅读器足够的时间来实际读取文件。
在阅读器端,您可以在文件上实现一个FileSystemWatcher对象。