DOBON.NETお気楽掲示板
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
検索
ツリー一括表示
.NET のワイルドカード仕様について
/海風の岬
(22/02/22(Tue) 23:21)
#1606
親記事 / 返信無し
■1606
/ 親階層)
.NET のワイルドカード仕様について
□投稿者/ 海風の岬
-(2022/02/22(Tue) 23:21:36)
日曜プログラマーの素人親父です。ここのHPはいつも大変わかりやすくて勉強させていただいております。
プログラミング掲示板のほうがよいのかもしれませんが、雑談めいた話なのでこちらで。
ワイルドカードの「?」は通常、任意の一文字として扱われていますが、ファイル一覧を得るために DirectoryInfo.EnumerateFiles を調べていたところ、
『 ? (疑問符) その位置に0個または1個の文字。』とあり、.NET では必ずしも1文字ではないと知りました。
さらに「*」を拡張子3文字固定で使用すると別の動きがあることも書かれていて、驚きました。
(https://docs.microsoft.com/ja-jp/dotnet/api/system.io.directory.enumeratefiles?view=net-6.0 より)
試しに abc.txt / ac.txt などを作って DirectoryInfo.EnumerateFiles の引数をいろいろ変えて試してみましたが、「???.*」で abc.txt / ac.txtの両方とも検索されました。
ところが 「a??.txt」ではabc.txt / ac.txtの両方とも検索され、「??c.txt」では abc.txt しか検索されませんでした(同じ結果になると思っていました)。
このあたりの動きがどうもわかりづらく、わかりやすく説明しているHPなどがあれば是非おしえていただきたく。
まあ、プログラム上でDirectoryInfo.EnumerateFilesの引数には「"*"」のみを使用すればすむ話ではあるのですが、
ワイルドカードをユーザー(といっても自分ですが)にフォームで入力させようとしていたので想像と違う動作があるとは思ってもみなかったです。
結局正規表現でファイルの一覧から一部を抽出することにしましたが、
このあたりの処理って難しいものですね。
(雑談めいた話なので、返信はなくても問題ありません)
[
□ Tree
]
返信
削除キー/
編集
削除
Pass/
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
検索
-
Child Tree
-