2017-05-04 2 views
0

作成するファイルのディレクトリを監視するメソッドを作成しようとしています。このファイルの拡張子は.completeです。それがなければ、私はそれが現れるのを待っていたい。表示されたら、拡張子の前にファイルの名前を抽出し、.completeファイルを削除して、何らかの処理を行い、新しい.completeファイルを聞くことに戻ります。ファイルの作成を待っています

これまで私がこれまで持っていたことは次のとおりです。ワイルドカードを正しく実行したと仮定して、ファイルの名前を抽出する手助けが必要だと思います。

while(1) { 
    if (!boost::filesystem::exists("/var/test/*.complete")) { 
     cout << ".complete file does not exist" << endl; 
    } 
    else { 

     //extract name of .complete file minus extension 
     //do my processing 
     system("rm *.complete"); 
    } 
} 
+0

に私は 'ブーストことを認識していなかったことを以下この回答からGET_ALL機能を使用して、コメントを追加し

それを考え出しました: :filesystem :: exists'はワイルドカード展開を行います。それは確かですか? –

+0

それはいくつかの余分な手順なしではないようです。 – user1984300

+0

boostファイルシステムライブラリは、指定されたパスの下で普通のファイルを繰り返すことができます。 1つの通常ファイルの拡張子を与えることもできます。 – ZFY

答えて

0

私が後押しするために使用されていないんだけど、いくつかの簡単なステップで、あなたが望む結果を得ることができます

ステップ1:ディレクトリ(のreaddirまたは同等の)

ステップ2を読む:あなたが「ちゃうのファイルはすべてのconst charとしてディレクトリに含ま*

ステップ3:代わりのconst char型のSTD ::文字列を取得します*

ステップ4:fileName.find( "完全")

あなたはそれを得る:)

関連する問題