可以使用FindFirstFile()将文件从一个目录移动或复制到另一个目录吗?既然它返回一个句柄,这个句柄可以用来做它吗?可以使用FindFirstFile()移动文件
回答
不,它甚至不是内核句柄。此句柄可能只有传递给FindNextFile
和FindClose
。
P.S.您不希望CreateEvent
返回的句柄能够复制文件...
MoveFile()函数只需要2个参数(从文件名到文件名),因此您不需要使用FindFirstFile移动文件。功能与CopyFile()类似。
http://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85).aspx
见报价:
如果函数成功,返回值是 到FindNextFile或FindClose的后续调用使用的搜索句柄,并lpFindFileData 参数包含有关信息找到第一个文件或目录 。
返回值是一个搜索句柄,而不是文件句柄。由此看来,你不能。
FindFirstFile
返回搜索处理(不文件句柄),其目的是只对文件搜索。由于您已经将文件名(和路径)作为参数传递给FindFirstFile
,为什么不将它传递给MoveFile/MoveFileEx
。如果文件不存在,您甚至不需要拨打FindFirstFile
,MoveFile
将会失败。
它返回的句柄仅用于允许您调用FindNextFile()。非常方便,可以让你传递通配符(例如“。”)以迭代所有匹配的文件。不要忘记调用FindClose()。
真金块是它返回的WIN32_FIND_DATA.cFileName值。这是你需要调用MoveFile()来移动文件的人。
我不明白真正的金块线..你在暗示什么?我尝试使用MoveFile(),但它没有奏效。传递给MoveFile()的2个文件的路径太长了,我认为这可能是一个问题.. – digvijay 2012-02-01 13:42:36
@digvijay:如果'MoveFile()'不适合你,那么你可能没有正确使用它。请注意,'cFileName'只返回文件名,而不是完整的路径。它与正在搜索的文件夹相关。确保你传递完整路径到'MoveFile()'。如果它仍然不起作用,那么在这里显示你的代码。 – 2012-02-08 05:55:42
- 1. FindFirstFile多种文件类型
- 2. 当文件可用时移动文件
- 3. 是否可以使用Win32 :: OLE移动Outlook文件夹?
- 4. 是否可以使用django-filer移动文件?
- 5. 我可以使用Windows对话框移动/覆盖文件吗?
- 6. C++ - 提取所有文件名 - 用FindFirstFile
- 7. 移动文件在可可
- 8. 使用cmd移动文件?
- 9. 使用Python移动文件
- 10. 使用VBscript移动文件
- 11. jqgrid可以使用jQuery移动吗?
- 12. FindFirstFile,FindNextFile API不可靠吗?
- 13. 如何从FindFirstFile()获取多个文件类型有可能吗?
- 14. 是否可以从ashx文件创建移动应用程序
- 15. 使用FindFirstFile/FindNextFile删除文件夹中的所有文件的C++代码
- 16. FindFirstFile LPCSTR
- 17. C++ - 经与用FindFirstFile
- 18. 使文件不可移动,可复制或可删除?
- 19. 我可以使用root ca证书签署iOS移动配置文件吗
- 20. 多线程可以在Windows上使用ATOMIC_MOVE移动相同的文件
- 21. 是否可以在.htaccess文件中使用通配符进行批量移动?
- 22. 是否可以使用FSEvents来获取文件夹已被移动的通知?
- 23. 我可以优化现有的HTML,CSS和JS文件使用jQuery的移动
- 24. 我可以使用JSP在我的服务器上移动文件吗?
- 25. 以附件移动到子文件夹
- 26. Laravel 4:迁移文件可以重复使用吗?
- 27. 是否可以在Rails迁移中使用外部SQL文件?
- 28. 使用'管道'以交互模式移动文件
- 29. 我可以删除迁移文件吗?
- 30. 我可以删除迁移文件吗?
句柄只是一个特殊的指针。不管你如何得到一个。为什么这样问?你遇到过问题吗? – 2012-02-01 12:56:28
没有遇到过这样的问题,当我正在寻找将文件从一个文件夹复制到另一个文件夹的方法时,这种方法刚打了我......也许我关于手柄的概念不是很清楚。 – digvijay 2012-02-01 13:16:21