0

这是用 C++/winRT 编写的,最终将取代 C++/CX。以下 3 行代码位于对 OpenSequentialWriteAsync(). 但是,唉,没有这样的命令,只有 OpenSequentialReadAsync().

是否有不允许创建顺序文件的原因???

StorageFolder _storageFolder = ApplicationData::Current().LocalFolder();    

StorageFolder _turboCalc = co_await _storageFolder.CreateFolderAsync(L"TurboCalc", CreationCollisionOption::OpenIfExists); //create sub folder in folder

StorageFile  _storageFile = co_await _turboCalc.CreateFileAsync(L"FileDoubles.dbo", CreationCollisionOption::ReplaceExisting); //create file in sub folder
4

1 回答 1

1

Windows对文件有不同的缓存策略。如该链接所述(这是 for CreateFile,其级别低于StorageFile):

指定FILE_FLAG_SEQUENTIAL_SCAN标志可以提高使用顺序访问读取大文件的应用程序的性能。对于主要按顺序读取大文件但偶尔向前跳过小字节范围的应用程序,性能提升可能更加明显。如果应用程序移动文件指针以进行随机访问,则很可能不会出现最佳缓存性能。但是,仍然可以保证正确操作。

因此,OpenSequentialReadAsync如果您确实是按顺序读取文件,则使用该方法可以提高性能。写作没有等效的优化,所以你可以使用OpenAsync.

于 2017-03-24T00:26:53.587 回答