gpt4 book ai didi

c# - Windows 8 C# 同时读取和写入文件

转载 作者:行者123 更新时间:2023-11-30 18:36:01 25 4
gpt4 key购买 nike

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

这里的文件是 app 文件夹中的 StorageFile

写入方法调用:

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 类似的东西,以便我可以明确地说这个文件需要从同一应用程序的另一个位置访问?

最佳答案

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

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

关于c# - Windows 8 C# 同时读取和写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14278023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com