2012-02-01 45 views
1

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

+0

句柄只是一个特殊的指针。不管你如何得到一个。为什么这样问?你遇到过问题吗? – 2012-02-01 12:56:28

+0

没有遇到过这样的问题,当我正在寻找将文件从一个文件夹复制到另一个文件夹的方法时,这种方法刚打了我......也许我关于手柄的概念不是很清楚。 – digvijay 2012-02-01 13:16:21

回答

2

不,它甚至不是内核句柄。此句柄可能只有传递给FindNextFileFindClose

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

1

MoveFile()函数只需要2个参数(从文件名到文件名),因此您不需要使用FindFirstFile移动文件。功能与CopyFile()类似。

1

FindFirstFile返回搜索处理(不文件句柄),其目的是只对文件搜索。由于您已经将文件名(和路径)作为参数传递给FindFirstFile,为什么不将它传递给MoveFile/MoveFileEx。如果文件不存在,您甚至不需要拨打FindFirstFileMoveFile将会失败。

2

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

真金块是它返回的WIN32_FIND_DATA.cFileName值。这是你需要调用MoveFile()来移动文件的人。

+0

我不明白真正的金块线..你在暗示什么?我尝试使用MoveFile(),但它没有奏效。传递给MoveFile()的2个文件的路径太长了,我认为这可能是一个问题.. – digvijay 2012-02-01 13:42:36

+0

@digvijay:如果'MoveFile()'不适合你,那么你可能没有正确使用它。请注意,'cFileName'只返回文件名,而不是完整的路径。它与正在搜索的文件夹相关。确保你传递完整路径到'MoveFile()'。如果它仍然不起作用,那么在这里显示你的代码。 – 2012-02-08 05:55:42

相关问题