使用套接字下载文件后,我需要设置文件创建时间。在 CF FileInfo.CreationTime 中是只读的。我尝试使用此主题中的 P/Invoke 解决方案,但它不起作用:我收到错误 6(无效句柄)。
根据 MSDN,SetFileTime() 的第一个参数必须是句柄,而在提到的主题中它是字符串,有人说它对他有用。我究竟做错了什么?如果我需要使用句柄,如何在 CF 中获取此句柄以及如何更改 SetFileTime() 声明?
使用套接字下载文件后,我需要设置文件创建时间。在 CF FileInfo.CreationTime 中是只读的。我尝试使用此主题中的 P/Invoke 解决方案,但它不起作用:我收到错误 6(无效句柄)。
根据 MSDN,SetFileTime() 的第一个参数必须是句柄,而在提到的主题中它是字符串,有人说它对他有用。我究竟做错了什么?如果我需要使用句柄,如何在 CF 中获取此句柄以及如何更改 SetFileTime() 声明?
有趣的。您指出的答案显然是错误的,尽管它被接受了。
无论如何,您需要传入一个从对 CreateFile 的调用返回的 HANDLE(IntPtr 或者您想表示它) -您还需要 P/Invoke。
[DllImport("coredll.dll")]
private static extern bool SetFileTime(IntPtr fileHandle,
ref long creationTime,
ref long lastAccessTime,
ref long lastWriteTime);
完成后一定要调用CloseHandle。