Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UWP query.GetItemCountAsync-在映射的网络驱动器上失败';库、驱动器或媒体池为空。(HRESULT的例外:0x800710D2)和#x27;_Uwp_Enumerate - Fatal编程技术网

UWP query.GetItemCountAsync-在映射的网络驱动器上失败';库、驱动器或媒体池为空。(HRESULT的例外:0x800710D2)和#x27;

UWP query.GetItemCountAsync-在映射的网络驱动器上失败';库、驱动器或媒体池为空。(HRESULT的例外:0x800710D2)和#x27;,uwp,enumerate,Uwp,Enumerate,如果我使用下面的代码枚举一个映射的网络驱动器,虽然它需要很长时间并消耗5 GB内存,但它完成了任务,没有错误 var files = await folder.GetFilesAsync(CommonFileQuery.OrderByName); 如果我使用查询系统来获取文件数量(在本地磁盘上运行良好),那么它在同一个网络映射驱动器上会失败 var fileTypeFilter = new List<string>(); var queryOptions = new QueryOp

如果我使用下面的代码枚举一个映射的网络驱动器,虽然它需要很长时间并消耗5 GB内存,但它完成了任务,没有错误

var files = await folder.GetFilesAsync(CommonFileQuery.OrderByName);
如果我使用查询系统来获取文件数量(在本地磁盘上运行良好),那么它在同一个网络映射驱动器上会失败

var fileTypeFilter = new List<string>();
var queryOptions = new QueryOptions(CommonFileQuery.OrderByTitle, fileTypeFilter);
var query = folder.CreateFileQueryWithOptions(queryOptions);
var x2 = await query.GetItemCountAsync();
var fileTypeFilter=newlist();
var queryOptions=新的queryOptions(CommonFileQuery.OrderByTitle,fileTypeFilter);
var query=folder.CreateFileQueryWithOptions(queryOptions);
var x2=await query.GetItemCountAsync();
错误为“System.Exception:'库、驱动器或媒体池为空。(HRESULT中的异常:0x800710D2)”—这根本没有用处。是的,我在谷歌上查了一下,得到了5个巨大的结果


你有没有想过为什么会这样?可能是因为本地驱动器已编制索引,而网络未编制索引,但这使得此查询在任何地方都毫无意义,因为您无法保证文件夹已编制索引。

我发现了,它实际上已记录在案,但错误并未记录在案

最初的问题是为什么我有时会使用以下命令出错:

var fileTypeFilter = new List<string>();
var queryOptions = new QueryOptions(CommonFileQuery.OrderByTitle, fileTypeFilter);
var query = folder.CreateFileQueryWithOptions(queryOptions);
var x2 = await query.GetItemCountAsync();
var fileTypeFilter=newlist();
var queryOptions=新的queryOptions(CommonFileQuery.OrderByTitle,fileTypeFilter);
var query=folder.CreateFileQueryWithOptions(queryOptions);
var x2=await query.GetItemCountAsync();
答案是使用“CommonFileQuery.OrderByTitle”,它在网络驱动器上不起作用。它必须被替换为“CommonFileQuery.OrderByName”,然后才能工作

当然,性能仍然糟糕,运行时代理内存消耗令人震惊。我不同意消耗5GB内存而不释放它是可以接受的。这基本上阻止了我使用新的WinRT StorageFile/文件夹,即使是在.net 5上的Win32应用程序中


但问题得到了回答;希望.net 6和WinRT能够解决此问题:)

您好,我尝试使用提供的代码获取映射网络驱动器中文件夹的子文件数,并且可以返回正常结果。您可以检查驱动器中的文件夹是否正确连接到指定位置。该驱动器是Windows 10 2020H2上永久映射的NAS(Synology)WiFi驱动器。我在Win32中的代码可以在本地和映射的驱动器上完美地工作。UWP GetFiles工作正常,只有GetItemCount失败,并且仅在映射驱动器上。索引不是问题,因为您无法为映射驱动器编制索引,我知道驱动器处于联机状态并正在响应,因为我可以使用Windows资源管理器查看它。您好,正如您所说,这可能需要特殊的复制环境。您是否接受在UWP中使用Win32 API来实现您的目标?我已经针对不同的场景准确地评估了该场景、性能、内存使用情况、磁盘/网络使用情况。UWP与GetFiles,Get Count和iterate,Win32允许的API。我不希望使用Win32 API,但它看起来是必须的:(-然后StorageFile类中出现了大量内存泄漏:(-让我澄清一下,UWP无法恢复不再使用时存储StorageFile对象所使用的内存。