我在Windows服务中使用WPD(Windows便携设备)API,将文件从mtp设备上的文件夹传输到硬盘上的指定文件夹。
出于测试目的,我在mtp设备上的文件夹下创建xyzdata.txt文件。 因此,当代码达到这样的程度时:
hr = content->Properties(&properties);
if (SUCCEEDED(hr))
{
hr = GetStringValue(properties.Get(),
selection,
WPD_OBJECT_ORIGINAL_FILE_NAME,
&originalFileName);
}
'hr'填充了“ERROR_BUSY”,并且根本没有设置originalFileName。 是否有理由不为某些对象设置WPD_OBJECT_ORIGINAL_FILE_NAME或者检索数据是否有问题?
任何帮助都是非常宝贵的。如果你需要更多代码,我会在这里发布。
编辑:
错误代码是,
hr = HRESULT_FROM_WIN32(ERROR_BUSY):请求的资源正在使用。
此外,该设备是一个Android设备。有时当我们插回USB电缆时,文件名可用。但这种情况很少见。请让我知道发生了什么
答案 0 :(得分:0)
找到解决方案。
问题是GetStream()调用在我调用GetStringValue()之前没有完成。
因为GetStringValue()函数调用对GetStream()没有任何依赖,所以我只是对它们进行了重新排序,并且它们都开始工作了。