検索するパターンがあります。「*.txt」と言います。
今、そこにリストしたくないファイルがいくつかあります。このパターンには合わないと思います。しかし、Windowsではそうです。
レガシー 8.3 ファイル名の短縮形を作成するためにチルダ文字が使用されていることは知っています。つまり、LongFilename.json は LONGFI~1.JSO の可能性があります。しかし、ファイル検索パターンのウィンドウで何らかの形で処理されているとは知りませんでした。彼らです。それらが何を意味するのか、ファイルを自分のやり方で一致させる方法についてのドキュメントが見つかりません。
私の問題は短い形式ではありません。もしくは直接関係ないと思います。
ファイル「A.txt」があります。今度は一時ファイルが欲しくて「A.txt~」を使いました。通常は表示されない UNIX バックアップ ファイルです。しかし、Windows では、それ自体で特別な意味を持つべきではありません。私のアプリケーションのみ。
「*.txt」ファイルのリストが必要です。コマンド dir *.txt は、驚いたことに、同じディレクトリ内のすべての .txt~ ファイルも返します。そして、私はそれらを望んでいません。Win32 API の FindFileFirst を使用します。ドキュメントでチルダ文字については何も見つかりませんでした。FindFileFirst(" .txt", handle) はファイル "A.txt~" も返します。それらを除外するためにいくつかのフラグを使用できますか? 「。」のように、特別な条件を作成できることを知っています。と ".."。~ 演算子はどのように機能しますか? A.txt~1 も一致します。チルダ以降はすべて無視されますか? それは機能ですか、それともバグですか?
Windows 7 Professional、64 エディションでそれをテストしています。