2

使用套接字下载文件后,我需要设置文件创建时间。在 CF FileInfo.CreationTime 中是只读的。我尝试使用此主题中的 P/Invoke 解决方案,但它不起作用:我收到错误 6(无效句柄)。

根据 MSDN,SetFileTime() 的第一个参数必须是句柄,而在提到的主题中它是字符串,有人说它对他有用。我究竟做错了什么?如果我需要使用句柄,如何在 CF 中获取此句柄以及如何更改 SetFileTime() 声明?

4

1 回答 1

0

有趣的。您指出的答案显然是错误的,尽管它被接受了。

无论如何,您需要传入一个从对 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

于 2012-10-23T17:52:04.557 回答