=================================================
ソフト名       ：PANDA重複ファイル削除ソフト
バージョン    ： 1.1.8
動作環境     ： Windows10、windows11
ライセンス   　 ：フリーソフト。
必要なランタイムなど ：NtfsReader.dll、.NET10
サポートurl 
https://shimarisu.ie-t.net/
=================================================
■このソフトの説明

ローカルPC上の重複ファイルを検出して削除するソフトです。
安全性、正確性、抽出の早さ、登録のしやすさにこだわって作った。

私が使ってる某重複ファイル抽出ソフトはフォルダの選択が面倒なので、
ドラッグ&ドロップや選択履歴から簡単に素早く登録できるソフトを作った。

1. 最初に同一サイズのファイルを抽出し、
その抽出されたファイルから、ファイルのハッシュを見て重複を検出する。
時間のかかるファイルのハッシュ取得を最小限にした二段階なので早い。
2.ファイルやフォルダをドラッグ&ドロップにより入力できる。
(複数可）
今までに取得したフォルダをテキストファイルに書き出し
再登録する時にコンボボックスで選択で登録もできる。
3.重複検出した場合、日付が古いファイルを残すか、
新しいファイルを残すかの選択ができる。
4.重複検出するとテーブルに名前、フルパス、日付、ハッシュ、サイズが表示されて、
重複一覧が並ぶのでので本当に重複ファイルかどうかが分かりやすい。
削除するファイルはチェックしてあり、
残すファイルはチェックは無いので、
確認してから「削除」ボタンで一括削除できる。
削除してもゴミ箱に入るので取り消しは可能。
5.mftを使ってドライブを一括チェックもできる。
6.重複のファイルの中で正規表現でヒットしたファイル名を残したり削除したりする機能。
7.CSVやJSONでテーブルを保存できる機能。
8.複数のフォルダを重複チェックできる機能。



■使い方
PANDA重複ファイル削除ソフト.exeを起動します。

登録するには、
メインタブにテキストファイルが入ったフォルダかテキストファイルを
ドラッグ&ドロップします。
（複数可。テーブルタブD&Dでも良い。）

サブフォルダも取得します。

「開く」ボタンはクリックするとダイアログが出るので、
フォルダを選択するとそのフォルダを登録します。

一度登録するとfolder.txtに書き出されます。
起動時にfolder.txtをコンボボックスに読み込みます。
「folder.txtを一括で取得」チェックを外して、
コンボボックスを選択して「開始ボタン」を押すと、
そのフォルダを取得できます。
（再取得する場合に、D&Dするのが面倒なら、
コンボボックスで選択できる機能です。）

「folder.txtを一括で取得」チェックを入れると、
folder.txtに書かれたフォルダ内のファイルを全て一括で登録します。

「フォルダ内のファイル取得方法」はフォルダ内のファイルの取得方法です。
「System.IO.Directory.GetFiles」をチェックすると、
System.IO.Directory.GetFilesで取得します。
「 Directory.EnumerateFiles」をチェックすると、
Directory.EnumerateFilesで取得します。
「dirコマンド」をチェックすると、
dirコマンドで取得した文字列からファイルパスを取得して
ファイルを取得します。
（サブフォルダも含む。
dirコマンドには/s /bオプションを付けてます。）

速度はDirectory.EnumerateFiles>System.IO.Directory.GetFiles>dirコマンド
の順番だと思います。

どれを選択しても作業時間は大して変わらないです。
「System.IO.Directory.GetFiles」にしとけば良いです。

「Directory.GetFilesで拡張子指定する」をチェックすると、
Directory.GetFilesで拡張子指定して指定拡張子のファイルのみを取得します。
異なる拡張子を取得しないので早くなります。
jpgを取得しようと思ったら「*.jpg」になります。
「.jpg」ではないので注意。
また、複数の拡張子を指定できないので注意。
一つの拡張子しか指定できません。
「 Directory.EnumerateFiles」や「dirコマンド」をチェックした場合でもこの設定は適用されます。
複数の拡張子を登録する場合は「正規表現でヒットした拡張子のみを取得する」
の方を有効にすると良いです。

登録できなくなった場合は
「Directory.GetFilesで拡張子指定する」を外して見ると良いです。

「指定拡張子のファイルのみを取得」チェックはチェックすると
正規表現でヒットした拡張子のみを登録します。
例えば「.(jpg|png|mp4)」
複数の拡張子を指定したい場合に「Directory.GetFilesで拡張子指定する」を無効にして、
「正規表現でヒットした拡張子のみを取得する」を有効にすると良いです。

「取得したフォルダをテキストに書き出す」チェックは
チェックすると、取得したフォルダをfolder.txtに書き出します。


[プログレスバー]チェックは有効にするとプログレスバーが表示されます。

[アニメ]チェックは有効にすると登録時に回転するアニメのアイコンが表示されます。



 [日付の設定]は日付が更新日か最終アクセス日か作成日かの設定です。

重複チェックに使うハッシュはMD5です。

PANDA重複ファイル削除ソフト.exeを取り出して上書きして使ってください。


■正規表現で削除ファイルを選択する機能


日付の新しいか古いか以外にファイル名で
削除対象を判定する機能をつけた。

設定2の「削除判定」の
「正規表現にヒットしたファイルを残す」をチェックすると、
正規表現にヒットしたファイルを残す。
「正規表現にヒットしたファイルを削除」をチェックすると、
正規表現にヒットしたファイルを残す。

「削除判定のファイル名(パス)の正規表現」に正規表現を設定する。

正規表現の対象のテキストはファイル名とファイルのパスです。
ファイル名だけでなくフォルダ名でもできます。

例えば、ファイル名が
G0SoaplbsAAJBTk.jpg
1982358197408268339_1.jpg
の同じファイルがあるとして、

[0-9]+_[0-9]+.jpgを入れて、
「正規表現にヒットしたファイルを残す」をチェックすれば、
G0SoaplbsAAJBTk.jpgが削除される。
「正規表現にヒットしたファイルを削除す」をチェックすれば、
1982358197408268339_1.jpgが削除される。




■ハッシュ取得アルゴリズムの選択について

「設定」の「ハッシュ取得アルゴリズムの選択」で設定できる。
ファイルのハッシュを取得するハッシュ関数の違いです。

md5、sha1、CRC32、BLAKE3、xxHashの中から選択できる。

処理速度は
CRC32>BLAKE3=xxHas>md5>sha1
くらいだと思う。

md5にしとけば良いです。

結果はどれも同じです。

■ 「指定フォルダに削除禁止のプロテクトをかける」チェックについて

特定のフォルダ内のファイルを削除しないようにプロテクトをかける機能です。

「指定フォルダの正規表現」に入れた正規表現が
削除ファイルのパスにヒットすると削除しないでスルーします。

例えば
「指定フォルダの正規表現」にfol_ichigoと入れて
ファイルのパスが
c:\fol_ringo\fol_ichigo\file.jpg
なら、スルーして削除しません。
c:\fol_ringo\fol_ichigo\fol_suika\file.jpg
もスルーして削除しません。
c:\fol_ringo\file.jpg
は削除します。


■[削除でゴミ箱を使わない]チェックについて

[削除でゴミ箱を使わない]チェックすると
削除する時にゴミ箱に入れません。

ゴミ箱を使わない方が削除が早いです。
大量に削除する場合に有効にすると良いです。

ゴミ箱を使うとメモリの消費が激しく増えるみたいなので注意。
そういう場合もゴミ箱を使わない方が良いです。



■[サイズの取得でGetDetailsOfを使う]チェックについて

問題なければチェック入れとけば良いです。

[サイズの取得でGetDetailsOfを使う]をチェックすると、
ファイルのサイズをGetDetailsOfで取得する。
どうなるかというと、
50.5kや20.2Mなどサイズの表示が分かりやすくなる。

[サイズの取得でGetDetailsOfを使う]チェックを外すと
バイト単位での表示になる。

サイズを表示出来ない場合はチェックを外してください。


■ドライブを一括チェックする機能
[開始で実行する機能の設定]で[ドライブを選択]をチェック。

メインタブの「入力ドライブ名」に入力ドライブ名を入れます。
Cを入れれば良いと思います。。
デフォルトはC。
C:\のような:\は不要なので注意。
アルファベット一文字のみを入れてください。
大文字小文字はどちらでも良いです。

[開始]ボタンで開始されます。

HDDのファイル数によってはそうとう時間がかかるので注意。

[ドライブの一括取得でリミット数以上を取得しない]チェックは
チェックすると、[ドライブを選択]した場合で、
取得ファイル数にリミットを付けて途中で終了します。
[ドライブの一括取得で取得リミット数]にリミット数を入れます。
時間がかかるので途中までで良いのでやってみたいって人は
チェックすると良いです。

[ドライブの取得でNtfsReader搭載の重複サイズ取得機能を使う（非推奨）]
チェックはチェックすると、
このソフトで使われてるライブラリのNtfsReaderに搭載された機能で
重複サイズのファイルを取得してから、重複ハッシュを取得して
重複検出します。
ただし、この機能だと一部しか検出できないので注意。
全てを検出させたいならチェックを外してください。

[ドライブの取得でNtfsReader搭載の重複サイズ取得機能を使う（非推奨）]
チェックを外すと、mftにアクセスしてHDD上の全てのファイルを取得して、
重複サイズのファイルを取得してから、重複ハッシュを取得して
重複検出します。

[プログレスバーを更新する間隔]はプログレスバーを更新する間隔です。
適用されるのはドライブ取得で最初のファイル取得の時のみです。
間隔は[件に一度更新]のとこに入れます。
ファイルが多すぎると、プログレスバーの更新が多すぎて
時間がかかるのでつけた。
デフォルトは10000。
10000だと1万件に一度、プログレスバーを更新します。
ファイル数が少ないHDDだと、もっと数値を小さくしないといけないです。
数値が小さすぎると登録作業が遅くなるので注意。
自分で調節してください。
この設定はドライブ取得のみです。
[コンボボックスの選択]やドラッグ&ドロップの入力では適用されません。
一つのファイルずつプログレスバーが更新されます。

■削除テーブル
重複が検出されると
[テーブル]タブに入ります。
「削除」ボタンを押すとチェックされたファイルが一括削除されます。

削除したファイルはゴミ箱に入ります。


「移動」ボタンは押すと
「移動先フォルダ」に移動します。
 （「移動先フォルダ」が存在しない場合は何もしない。）

「開く」ボタンで「移動先フォルダ」を開ける。
「貼る」ボタンで「移動先フォルダ」のパスの貼り付けができる。


「コピー」ボタンは押すと
「移動先フォルダ」にコピーされます。
 （「移動先フォルダ」が存在しない場合は何もしない。）

[選択を反転]ボタンは押すとチェックを反転させます。



[削除判定]で[日付が古いのを残す]にチェックすると、
ファイルの日付が新しいのを削除して一番古いファイルを残します。
[日付が新しいのを残す]にチェックすると、
ファイルの日付が古いのを削除して一番新しいファイルを残します。

[日付の設定]で重複チェックに使う日付を何にするか設定できます。
[最終更新日]。[最終アクセス日]、[作成日]  のどれかを選択できます。


 [削除ログ]は削除したファイルのログです。
delete_log.txtに削除したファイルのパスが入ります。

[1日以上前の古いファイルを削除しない] は間違って削除しないための安全装置です。
チェックすると、ファイルの日付を確認して1日以上前の古いファイルは削除しません。
通常、重複チェックして削除するのは、
ダウンロードしてフォルダに入れた新しいファイルの方だと思うので
この機能を付けた。
チェックを外せば古いファイルも削除出来ます。

 テーブルサイズはフォームのサイズに合わして
ある程度、縦に可変します。

■複数フォルダをチェックする機能

2つの方法があります。

[開始で実行する機能の設定]で[複数フォルダ(folder.txt)]をチェックして
「開始」ボタンを押した場合、
folder.txtに書かれたフォルダを複数のフォルダを一括チェックします。

[開始で実行する機能の設定]で[複数フォルダ(テキストボックス)]をチェックして
「入力フォルダ」タブに複数のフォルダをD&Dします。
「開始」ボタンで一括チェックします。

■テーブルを保存する機能

テーブルに入った状態で「保存」ボタンを押すとテーブルを保存できます。
「テーブル保存設定」でCSVかJSONかを設定できます。

「保存ファイル名」で保存されるファイル名を設定できます。
(拡張子不要）

「保存ファイル名」が空の場合は日付と時間のファイル名で保存される。

■ベンチマークについて

「ハッシュ取得アルゴリズムの選択」で選択できるハッシュが
あなたのPCでどれが一番早いか測定するための機能です。
参考にしてください。


「ベンチマーク」ボタンを押します。
ダイアログは開くので、サイズの大きいファイルを選択します。


■ライブラリ


NtfsReader.dll

■動作環境
windows10、windows11

■インストール
任意のフォルダに圧縮ファイルを展開してください。

■アンインストール
レジストリは一切使っていないでの、
ゴミ箱に捨てれば良いです。

★更新履歴
2026/2/8
ver 1.1.8
テーブルをクリックで開かなかった問題を修正。
2026/1/29
ver 1.1.7
2026/1/25
ver 1.1.6
.net framework4.7.2から.NET10に移行。
これによりwindows7を切り捨て。32bit版windowsも切り捨て。
ハッシュ取得のアルゴリズムでBLAKE3とxxHashを追加。
ベンチマーク機能。
2026/1/17
ver 1.1.5
CSVやJSONでテーブルを保存できる機能。
2026/1/16
ver 1.1.4
複数のフォルダを重複チェックできる機能。
2026/1/15
ver 1.1.3
削除対象を正規表現で選べる機能。

2021/2/15
ver 1.1.2
テーブルタブでウインドウを下にスクロールすると
テーブル(datagridview)が下に伸びる設定にした。
sha1やCRC32でハッシュを取得できるようにした。
2021/2/9
ver 1.1.1
2021/2/8
ver 1.1.0
2021/2/8
ver 1.0.9
「指定フォルダに削除禁止のプロテクトをかける」機能
2021/2/3
ver 1.0.8
2021/2/3
ver 1.0.7
2021/2/3
ver 1.0.6
2020/1/13
ver 1.0.5
サイズの表示をわかりやすくする。
2020/1/13
ver 1.0.4
削除でなくコピー、移動できる機能。
2019/12/22
ver 1.0.3
2019/12/21
ver 1.0.2
sqliteのライブラリが不要だったので削除。
2019/12/19
ver 1.0.1
2019/12/17
ver 1.0.0
初公開
