1

FindFirstFile() 可以用于将文件从一个目录移动或复制到另一个目录吗?既然它返回一个句柄,那这个句柄可以用来做吗?

4

5 回答 5

2

它返回的句柄仅对允许您调用 FindNextFile() 有用。非常方便,允许您传递通配符(例如“ . ”)来迭代所有匹配的文件。不要忘记调用 FindClose()。

真正的金块是它返回的 WIN32_FIND_DATA.cFileName 值。这就是您需要调用 MoveFile() 来实际移动文件的那个。

于 2012-02-01T13:19:31.050 回答
2

不,它甚至不是内核句柄。此句柄只能传递给FindNextFileand FindClose

PS您不希望返回的句柄CreateEvent能够复制文件...

于 2012-02-01T12:55:30.057 回答
1

FindFirstFile返回搜索句柄(不是文件句柄),其目的仅用于文件搜索。既然您已经将文件名(和路径)作为参数传递给FindFirstFile,为什么不直接将它传递给MoveFile/MoveFileEx. 你甚至不需要调用FindFirstFileMoveFile如果文件不存在就会失败。

于 2012-02-01T13:04:21.673 回答
1

MoveFile()函数只接受 2 个参数(从文件名到文件名),因此您无需使用 FindFirstFile 来移动文件。CopyFile()函数类似。

于 2012-02-01T12:57:52.400 回答
1

http://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85).aspx

见报价:

如果函数成功,则返回值是在随后调用 FindNextFile 或 FindClose 时使用的搜索句柄,并且 lpFindFileData 参数包含有关找到的第一个文件或目录的信息。

返回值是搜索句柄,而不是文件句柄。由此看来,你不能。

于 2012-02-01T12:59:10.477 回答