HANDLE hfile = ??
int size = sizeof(CF_PLACEHOLDER_STANDARD_INFO) + fileIdentity_MaxLength;
CF_PLACEHOLDER_STANDARD_INFO* standard_info = (CF_PLACEHOLDER_STANDARD_INFO*)new BYTE[size];
DWORD returnlength(0);
HRESULT result = CfGetPlaceholderInfo(
hfile,
CF_PLACEHOLDER_INFO_STANDARD,
standard_info,
size,
&returnlength);
该文件是SyncRoot上的占位符(例如onedrive的“按需文件”)
我尝试获取占位符信息,但是需要文件句柄。然后,我尝试CreateFile
,但需要下载文件。那我怎么不用下载就可以处理文件呢?还是从文件中获取PlaceholderInfo的简单解决方案?
谢谢。
答案 0 :(得分:1)
尝试像这样使用createfile:
CreateFile( filepath, 0, FILE_WRITE_DATA | FILE_READ_DATA, nullptr,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
nullptr )
答案 1 :(得分:0)
CfGetPlaceholderInfo()
(和other CfApi functions)期望CfOpenFileWithOplock()
中的HANDLE
。有关更多详细信息,请参见MSDN上的Cloud Filter API。