可以使用FindFirstFile()将文件从一个目录移动或复制到另一个目录吗?因为它返回一个句柄,这个句柄可以用来做吗?
答案 0 :(得分:2)
不,它甚至不是内核句柄。此句柄可以仅传递给FindNextFile
和FindClose
。
P.S。您不希望CreateEvent
返回的句柄能够复制文件...
答案 1 :(得分:2)
它返回的句柄仅用于允许您调用FindNextFile()。非常方便,允许您传递通配符(例如“。”)来迭代匹配的所有文件。不要忘记调用FindClose()。
真正的块是它返回的WIN32_FIND_DATA.cFileName值。这就是你需要调用MoveFile()来实际移动文件。
答案 2 :(得分:1)
MoveFile()函数只接受2个参数(从文件名到文件名),因此您不需要使用FindFirstFile来移动文件。 CopyFile()功能类似。
答案 3 :(得分:1)
http://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85).aspx
见报价:
如果函数成功,则返回值是用于的搜索句柄 随后调用FindNextFile或FindClose,以及lpFindFileData 参数包含有关第一个文件或目录的信息 找到。
返回值是搜索句柄,而不是文件句柄。从这看起来,你似乎不能。
答案 4 :(得分:1)
FindFirstFile
返回搜索句柄(不是文件句柄),其目的仅用于文件搜索。由于您已经将文件名(和路径)作为参数传递给FindFirstFile
,为什么不将其传递给MoveFile/MoveFileEx
。您甚至不需要致电FindFirstFile
,如果文件不存在,MoveFile
将会失败。