2012-02-01 42 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

相關問題