0

私はプログラミングの初心者ですが、フォルダーである多数の文字列を入力するスクリプトを作成し、cmd の現在の場所にある既存のフォルダーに対してフォルダーのリストを検索するタスクについて助けが必要です。どれが存在し、どれが存在しないか。存在するファイルのうち、内部にいくつのファイルがあるかを示します。

たとえば、デスクトップ ディレクトリ (a、bb、c が含まれているとします) で、a、b、aa、bb と入力すると、現在のディレクトリ内のすべてのフォルダー名に対して a、b、aa、bb が検索されます。 a、bb、cが存在し、aa、bが存在しないと出力します。次に、a、bb、c 内にいくつのファイルがあるかを示します。

時間がないので、すぐに助けていただければ幸いです。

4

2 に答える 2

1

Boost.Filesystemをお勧めします。これは、ファイル プロパティのクエリ、ファイルの作成、コピー、移動などのファイル システム操作を抽象化するクロスプラットフォーム ライブラリです。おまけとして、C++ ISO 標準の将来のバージョンでの標準化が提案されています。

開始点として、特定のディレクトリ内のすべてのファイルを処理する例を次に示します。

#include <boost/filesystem.hpp>
#include <iostream>

int main(int argc, char* argv[])
{
    if(argc == 2)
    {
        boost::filesystem::path directory(argv[1]);

        if (boost::filesystem::exists(directory) && boost::filesystem::is_directory(directory))
        {
            boost::filesystem::directory_iterator begin(directory);
            boost::filesystem::directory_iterator end;

            while(begin != end)
            {
                std::cout << *begin << " ";
                ++begin;
            }   
            std::cout << "\n";
        }   
    }
}

次のことができることを示しています。

  • ディレクトリ内のすべてのファイルを反復処理する
  • 指定されたパスが存在するかどうかを問い合わせる
  • 指定されたパスがディレクトリを指しているかどうかを問い合わせる

あなたが興味を持っているかもしれない他の機能:

于 2012-07-11T01:18:08.183 に答える
0

これを非常に簡単でクロスプラットフォームにする優れたライブラリがいくつかあります。

Qt と Boost は、最もよく知られているものの 1 つです。

これを行う関連クラスのドキュメントへのリンクは次のとおりです。

ブーストFilesystemQtQDir

ドキュメンテーションは長い間非常に統一されており、IDE もとても気に入っているので、私は Qt の方が好きです。

于 2012-07-11T01:23:52.717 に答える