1

FindFirstFile() を使用して、あるディレクトリから別のディレクトリにファイルを移動またはコピーできますか? ハンドルを返すので、このハンドルを使用して実行できますか?

4

5 に答える 5

2

返されるハンドルは、FindNextFile() を呼び出せるようにするためにのみ役立ちます。非常に便利で、ワイルドカード (" . " など) を渡して、一致するすべてのファイルを反復処理できます。FindClose() を呼び出すことを忘れないでください。

本当のナゲットは、それが返す WIN32_FIND_DATA.cFileName 値です。これは、実際にファイルを移動するために MoveFile() を呼び出す必要があるものです。

于 2012-02-01T13:19:31.050 に答える
2

いいえ、それはカーネル ハンドルではありません。このハンドルは、およびにのみ渡すことができます。FindNextFileFindClose

CreateEventPS によって返されるハンドルがファイルをコピーできるとは思わないでください...

于 2012-02-01T12:55:30.057 に答える
1

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

引用を参照してください:

関数が成功した場合、戻り値は、FindNextFileまたはFindCloseへの後続の呼び出しで使用される検索ハンドルであり、lpFindFileDataパラメーターには、最初に見つかったファイルまたはディレクトリーに関する情報が含まれます。

戻り値は検索ハンドルであり、ファイルハンドルではありません。このことから、あなたはできないように思われるでしょう。

于 2012-02-01T12:59:10.477 に答える
1

MoveFile ()関数は2つのパラメーター(ファイル名からファイル名まで)を受け取るだけなので、ファイルを移動するためにFindFirstFileを使用する必要はありません。CopyFile()関数も同様です。

于 2012-02-01T12:57:52.400 に答える
1

FindFirstFileファイルハンドルではなく)検索ハンドルを返します。その目的はファイル検索のみです。に引数としてファイル名(およびパス)を既に渡しているので、単にそれをに渡してみませんか。を呼び出す必要はありません。ファイルが存在しない場合は失敗します。FindFirstFileMoveFile/MoveFileExFindFirstFileMoveFile

于 2012-02-01T13:04:21.673 に答える