ディレクトリ ツリーのウォークスルーに関する多くの例を見つけましたが、少し違うものが必要です。各呼び出しがディレクトリから 1 つのファイルを返し、ディレクトリ ツリーを徐々に移動するメソッドを持つクラスが必要です。どうすればこれを行うことができますか? 関数 FindFirstFile、FindNextFile、および FindClose を使用しています。私は C++ の初心者です。私はこのようなものを持っています...
たとえば、この単純なディレクトリツリーがあります
Parent(folder)\
file1.txt
file2.txt
Child(folder)\
file3.txt
file4.txt
getNextFile() などのメソッドを持つクラスが必要です。最初の呼び出しは file1.txt を返します。2 番目の呼び出しは file2.txt を返し、3 番目の呼び出しは Child(folder) を返し、4 番目の呼び出しは file3.txt を返します。
重複フラグの編集:基本的に、do/while、while、または for なしでツリーをウォークスルーする必要があります...ブラウジングを中断したときに、後で使用するために保存でき、最後のファイルから続行できるある種のイテレータが必要ですが、理想的には winapi 呼び出しを使用する場合のみ
WIN32_FIND_DATA fdFile;
HANDLE hFind = NULL;
if((hFind = FindFirstFile(sPath, &fdFile)) == INVALID_HANDLE_VALUE)
{
return false;
}
do
{
//do some job with fdFile
}
while(FindNextFile(hFind, &fdFile));