-1

フォルダーを監視している C# Windows サービスがあります。ファイルが従来の Windows ファイル名構造を使用して作成されている場合、すべて問題ないようです (例: foo.zip)。しかし、その後、厄介な UNIX 関係者の 1 人が、自分のファイルに foo.bar.11-10-2013.zip という名前を付けています。

私のプログラムの File Watcher は、このファイルを認識しません。フィルタ セットがないため、デフォルトで になってい*.*ます。

ファイルの名前を変更してドットを削除し、アンダースコアに置き換えると、ファイル ウォッチャーにファイルが表示されます。

私は答えをグーグルで検索しようとしましたが、私の他の問題は、質問をどのように述べればよいかわからないことです-複数の拡張子、複数のドット、または複数のピリオドと呼びますか? これらはすべて役に立たない結果を返しました。

私の質問: 複数のドット拡張子を持つ Linux スタイルのファイル名を検出するようにファイル ウォッチャーを設定することは可能ですか? また、「マルチドット ファイル拡張子」の正式な用語を知っている場合は、それらが何と呼ばれているかを知りたいです。

4

2 に答える 2

0

答えは、少なくとも多くの作業がなければできないということであると判断しました。マルチドットファイルの名前を数秒ごとに変更するタイマーを考えましたが、それはお粗末なようです。

ファイルの作成時にファイル ウォッチャーを起動するように設定しました。これは、コントロールをデザイン サーフェイスにドラッグしたときに得られるものです。

変更を検出するようにイベントを変更し、サイズでフィルター処理しました。のようです「マルチドット」ファイル拡張子を除外しますが、そうしないのはなぜですか? foo.bar.blah.zip は .zip に適合しませんパターン。私たちが必要としているのは、ant のようなファイル パターン記述子です (誰もより適切な用語を提供していないため :-) が、ドキュメントではサポートされていないようです。

ファイルサイズの変化を監視することで、ファイルが作成されたときに(ゼロから何かに変わる)起動するように見えますが、これは私にとっては十分です。ファイルがそこにあることがわかったら、コントロールのフィルターに関係なく、その名前を取得できます。

于 2014-11-10T23:19:10.623 に答える