メインディレクトリ、その拡張子を知っているシステムディレクトリ内のファイルにアクセスするにはどうすればよいですか。しかし、ファイルの名前とその間のノード(= Subderectories)がわからないのですか?
2 に答える
ディレクトリの内容を検索する方法、つまりそのファイルの名前を検索する方法は、オペレーティング システムによって異なります。Linux では を使用diropen
し、Windows ではそれ以外のものを使用します。ただし、boost::filesystemライブラリを使用すると、プラットフォームに依存しない方法でこれを行うことができます。
あなたの言っていることが正しく理解できれば、あなたは「/System/foo/bar/baz.dat」というファイルを探していますが、「foo」、「bar」、または「baz」が何かわかりません。その場合、探している拡張子を持つファイルが見つかるまで、「/System」の下のすべてのディレクトリ内のすべてのファイルを反復処理する必要があります。
このような反復の例については、この質問の一番上の回答を参照してください。
System ディレクトリから始めて、その拡張子を持つすべてのファイルを検索できます。「システム ディレクトリ」に基づいて、これは Windows にあると推測します。その場合、その検索に通常使用する関数はFindFirstFile
、FindNextFile
およびFindClose
. SetCurrentDirectory
また、開始点の下のサブディレクトリにトラバースするために使用することもできます。
(これまで) あなたが言ったことに基づいて、その拡張子を持つ複数のファイルを見つけた場合に何をしたいのかを推測するのは困難です.