2016-08-11 3 views
-3

ここで何度も質問されています。「C++でディレクトリ内のファイルを反復処理するにはどうすればよいですか?C++ディレクトリ内のファイルを繰り返し処理する:悪い習慣ですか?

私は、これとOSの実装の違いを処理するために、通常は外部ライブラリ(通常はファイルシステムを拡張する)を使用することを提案しています。

私の質問は:なぜですか?なぜこれは難しいのですか? 私は言語に慣れていないので、慣用的なC++の限界を克服しようとしていると感じることはできません。

単一のファイルソリューションを実装し、ファイル繰り返しを実装する別の言語を使用する方が適切ですか?

+1

ライブラリを使用するのは本当に難しいですか? 'C++でライブラリを作り配布する能力は、その力の一部です。 – Galik

+0

主にオピニオンベースのフラグが設定されています。 – ray

+0

この質問をするより適切な場所がありますか? – i3rendn4v05

答えて

2

他の言語に比べて、C++には小さな標準ライブラリがあります。これには利点があります(C++を新しいプラットフォームに移植する方がはるかに簡単です)。しかし、多くのことを行うためには、外部ライブラリに頼ることになります。

ファイルシステムの作業は、C++ 17まではC++標準の一部ではありませんでした。そして今でも、特定のタイプの基礎となるファイルシステムではあまりうまく機能しないので、C++ 17ファイルシステムライブラリには抵抗している人もいます。

標準のファイルシステムをサポートしている多くの言語では、これらのプラットフォームはサポートされていません。はすべてです。

私は言語に新たなんだと助けることはできませんが、私は慣用的なC++用の境界を踏み越えしようとしていると感じています。

あなたがC++を使うつもりなら、他の多くの言語があなたに無料で与える多くのもののために、他のライブラリを使用して外出しなければならないことを受け入れる必要があります。ライブラリを使用することは、C++での処理方法です。それは何かの "限界を越える"ことではありません。

1

プラットフォーム固有のAPIを使用せずに、C++でディレクトリ内のファイルを反復処理することはできません。コアのC++言語と標準ライブラリは、ディレクトリリストを取得してそれを反復するメカニズムを提供していません。したがって、これを実行するには、に外部ライブラリまたはプラットフォーム固有のAPIを使用する必要があります。

+0

C++ 17まで、それはです。 –

関連する問題