前提・実現したいこと
指定したフォルダ内で、指定したワードを含まないファイルパスを取得したいです。
例: 指定フォルダ「A」 除外ワード「b」
\A\bbbb\CCCC.pdf ☚不要
\A\bbbb\DDDD.pdf ☚不要
\A\eeee\FFFF.pdf ☚要
\A\gggg\HHHH.pdf ☚要
初心者なりに考えた設計の流れ
1.Getfilesで一旦、指定フォルダ(txtFolderPath)以下全ファイルパス取得
2.Array配列を一旦リスト配列に変換する
(ネット情報で配列項目の削除をするにはリストにする必要があると見たので)
3.ListのRemoveを使って、要らない項目を削除
4.結果をlstFolderPathForSearchResultに表示
該当のソースコード
C#
1// 指定フォルダパス以下全てのファイルパスを取得 2String[] files = System.IO.Directory.GetFiles( 3 txtFolderPath.Text, "*" , System.IO.SearchOption.AllDirectories); 4 5// 除外ワード分の配列を削除 6var filesToList = new List<string>(); 7filesToList.AddRange(files); 8 9filesToList.Remove(//ここに除外ワードを含む項目を指定したいが分からない//); 10 11string[] new_src; 12new_src = filesToList.ToArray(); 13 14// 結果をリストに表示 15lstFolderPathForSearchResult.Items.AddRange(new_src);
3万件くらいあるファイルパスを取得します。
この処理の後の流れとしては、
リッチテキスト内に改行で指定された複数の文字列と
一致するファイルをコピペして集めてくる、というツールを作成していきます。
例:
FFFF 一致 \A\eeee\FFFF.pdf
GGGG 不一致
HHHH 一致 \A\gggg\HHHH.pdf
またこの件で質問させていただくと思いますが、
とりいそぎは上記コード分を教えていただけませんでしょうか。
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー