Law*_*nti 5 windows filesystems iphone winapi createfile
将iPhone连接到Win7计算机时,可以使用资源管理器(和我的应用程序的打开文件对话框)查看图像。但是,文件位置不包含驱动器号。
例如,Computer\Apple iPhone\Internal Storage\DCIM\800AAAAA\IMG_0008.JPG代替E:\DCIM\800AAAAA\IMG_0008.JPGsdcard,usb驱动器等的常见...
我尝试使用CreateFileW从iPhone读取图像,但失败,并显示“(错误代码:3)系统找不到指定的路径。” 我也尝试过使用Chrome访问它们,但是它也失败了。
有什么建议么?
该文件夹实际上是所谓的“虚拟文件夹”,并且在文件系统上没有完整路径。您将需要使用从打开的对话框返回的 shell 项来获取文件的内容,而不是使用 CreateFile。
数据应该是可访问的,但您应该遵循MSDN 文档中的说明。我确信可能有更好的例子(因为这仅提供指导)。
编辑粗略的过程是从 IFileOpenDialog 获取 IShellItem,然后绑定到流,然后读取流(假设只读) - 请记住,此代码几乎没有错误处理或检查或安全性:
if (pitem->GetDisplayName(SIGDN_NORMALDISPLAY, &destName) == S_OK) {
std::cout << destName << std::endl;
CoTaskMemFree(destName);
}
IStream *pistream;
if (pitem->BindToHandler(0, BHID_Stream, IID_PPV_ARGS(&pistream)) == S_OK) {
char input[1024];
long to_read = 1024;
unsigned long read;
while (S_OK == pistream->Read(input, to_read, &read)) {
std::cout << input << std::endl;
}
pistream->Release();
}
pitem->Release();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
979 次 |
| 最近记录: |