【超便利!】階層を保持したまま特定のファイルを抽出できるフリーソフト「CsFileCopy」の使い方
Web2017年5月3日
先日大量のディレクトリから特定のファイルだけを階層を保ったまま抽出したいシーンがあったのですが、フリーソフト「CsFileCopy」がとても便利でした。本記事では使い方を含め「CsFileCopy」でできることをご紹介させていただきたいと思います。
CsFileCopyの使い方
CsFileCopyをダウンロード、解凍
まずは、以下のサイトよりソフトをダウンロードします。
ダウンロードしたzipを解凍すると、以下のファイルが展開されます。
- CsFileCopy.exe
- Help.html
- ReadMe.txt
CsFileCopy.exeをダブルクリックして起動
CsFileCopyはマシンにインストールする必要はありません。CsFileCopy.exeをダブルクリックするとすぐに使うことができます。
抽出元フォルダを設定
[抽出元フォルダ]を設定します。
ここでは以下のようなディレクトリ構造のファイルを用意してみました。
hoge
├─01
│ ├─a.html
│ ├─b.html
│ ├─c.html
│ ├─images
│ │ └─main.jpg
│ └─index.html
├─02
│ ├─a.html
│ ├─b.html
│ ├─c.html
│ ├─images
│ │ └─main.jpg
│ └─index.html
├─03
│ ├─a.html
│ ├─b.html
│ ├─c.html
│ ├─images
│ │ └─main.jpg
│ └─index.html
├─04
│ ├─a.html
│ ├─b.html
│ ├─c.html
│ ├─images
│ │ └─main.jpg
│ └─index.html
└─05
├─a.html
├─b.html
├─c.html
├─images
│ └─main.jpg
└─index.html
抽出対象ファイルを設定
[抽出対象ファイル]を設定します。
設定例
- ※ワイルドカード「*」が使用可能
- ※複数検索する場合は「;」で区切る
入力例 | 抽出対象 | 実際に抽出されるファイル |
---|---|---|
index.html | ファイル名に「index.html」が含まれているファイル | 「01」~「05」フォルダにあるindex.html |
*.html | ファイル名に「.html」が含まれているファイル | 「01」~「05」フォルダにあるa.html、b.html、c.html、index.html |
*.html;*.jpg | ファイル名に「.html」または「.jpg」が含まれているファイル | 「01」~「05」フォルダにあるa.html、b.html、c.html、index.html、main.jpg |
*01*.html | ファイルパスが「01」→「.html」の順番で含まれるファイル | 「01」フォルダにあるa.html、b.html、c.html、index.html |
抽出先フォルダを設定
[抽出先フォルダ]を設定します。あらかじめ抽出元の「hoge」と同階層に「抽出先」という空フォルダを作成しておきます。
抽出条件を設定
[抽出条件]を設定します。ファイル更新日時を設定することができますが、ここでは「更新日時を抽出条件に含めない」にチェックを入れます。
「サブフォルダも対象」にチェック入れると、ディレクトリを再帰的に(ディレクトリの最も深くまで辿って)検索することができます。
ファイルを抽出
[ファイル抽出]をクリックすると、ウインドウ下部に検索された対象ファイルの結果が表示されます。
ファイルをコピー
表示された対象ファイルに問題が無ければ[ファイルコピー]をクリックします。これで設定した抽出先フォルダにディレクトリ構造を保ったままファイルがコピーされます。
除外ファイルも設定可能
さらに詳細に抽出対象を設定したい場合は[抽出除外対象ファイル]を活用するとよいでしょう。例えば以下のように設定することで、全ての.htmlを検索対象としつつ、a.htmlだけを除外する、ということも可能です。
余談:バッチファイルではどうにもうまくいかなかった
階層を保ったまま特定のファイルだけを抽出するにあたって、コマンドでもできるようでしたのでCsFileCopyを使う前にチャレンジしてみたのですが、どうにもうまくいかず断念しました。以下のサイトを参考に試したのですが、もしうまくいった方がいらっしゃいましたらぜひ教えてください。
まとめ
今回いくつかのファイルにおいて異なる置換を行う必要があったのですが、マークアップが同じであるためファイルごとにフォルダを分けて行う必要がありました。そこでディレクトリ構造を保ったまま特定のファイルだけを抽出する方法が無いか探っていたところ、まさにこのCsFileCopyがうってつけでしたので活用させていただきました次第です。作者の方に感謝ですね。
もし特定のファイルだけをディレクトリ構造を保ったまま抽出したい場合は、どうぞ本記事をご参考にしていただければ幸いです。