3

我有一个将字节数组写入文件(StorageFile)的过程。该进程以周期性间隔运行,同时我需要在另一个进程中从文件的开头读取。这两个进程属于不同的类。当我开始读取文件时,写入操作失败并出现拒绝访问错误。

这里的文件是StorageFileapp 文件夹中的一个。

write 方法调用:

IRandomAccessStream randomStream = await targetFile.OpenAsync(FileAccessMode.ReadWrite);
Stream stream = randomStream.AsStreamForWrite();

读取方法调用:

IRandomAccessStream randomStream = await targetFile.OpenAsync(FileAccessMode.Read);
Stream stream = randomStream.AsStreamForRead();

两种操作同时通过不同的方法进行,并导致访问被拒绝错误。似乎我可以在打开写入时使用相同方法中的读/写。但是如何通过不同的方法做到这一点?

我们是否有与前面类似的东西,System.IO.FileShare以便我可以明确地说需要从同一个应用程序中的另一个位置访问这个文件?

4

1 回答 1

0

除了切换到数据库类型设置之外,我还建议将您的写入缓冲到一个数组中,并根据缓冲区填充和/或某些经过的时间将它们写入块中。除非您需要精确到毫秒的最新和最佳性能,否则我怀疑人们会注意到性能影响。您将不得不调整缓冲区大小,以确保您给读者足够的时间来实际读取文件。

在阅读器方面,您可以在文件上实现FileSystemWatcher对象。

于 2013-01-11T14:09:06.893 回答