# r8 操作変更（2026-10-01）

## 保存先の指定
初期状態の「検索結果・実行ログの保存フォルダー」は空欄です。設定画面の参照で既存フォルダーを選んでください。空欄・存在しない場所・ファイルのパスでは検索を開始せずエラーを表示します。CSVと実行ログ（.log）は日時付きの名前で自動保存します。ファイル名の手動指定はできません。一度指定したフォルダーは次回起動時に復元します。

指定した保存フォルダーは、その配下も含め検索から除外します。検索したいファイルがある場所とは別の出力専用フォルダーを指定してください。保存障害時のCSV復旧機能は維持します。ログ保存に失敗した場合はエラーを表示し、画面からコピーできます。

## 設定の反映
「条件を保存」「保存」「設定を保存」ボタンは廃止しました。画面で編集した条件はそのまま次の検索に反映されます。通常は検索開始時・終了操作時に設定を保存します。強制終了時は未保存の変更が残らない場合があります。

## すべて初期化して保存
設定画面の「すべて初期化して保存」を押して確認すると、除外フォルダー・除外拡張子・顧客名・履歴・表示中の検索結果・実行ログ・概要情報をクリアします。キーワードは既定値、検索対象や詳細条件も初期値、保存先は空欄に戻し、設定と履歴を保存します。検索中は使用できません。保存済みCSV・ログ・復旧ファイルは削除しません。

以下には旧版の操作説明が含まれます。保存先・設定保存・初期化については上記r8の説明を優先してください。

---

## r7 初回起動の初期化（2026-10-01）

設定もWindowsユーザー・アプリ配置先ごとに分離しました。新しい配置先では旧版の共通設定を読み込まず、除外フォルダー・拡張子・登録顧客名・履歴は空、キーワードは既定値、CSVは自動命名で開始します。同じ配置先で保存した設定は再起動後も保持します。旧設定ファイルやCSVは削除しません。

## r6 — 初回履歴とCSV自動命名（2026-10-01）

新しい配置先の初回起動では履歴を空にします。旧版の共通history.jsonは読み込まず、Windowsユーザーとアプリ配置先ごとに履歴を保存します。同じ場所での再起動では新方式の履歴を保持します。既存CSV・旧履歴ファイル・キーワード設定は削除しません。フォルダーを移動すると別の履歴になります。

起動時のCSV保存先は、アプリ内「実行結果」の日時付き自動命名に戻ります。前回の手動ファイル名・保存フォルダーは引き継ぎません。起動後に保存先を変更することはできます。

# 顧客関連ファイル検索ツール Version 1.1.1 — モダンGUI版

## 起動

1. ZIPを右クリックし「すべて展開」を選びます。
2. 展開先の `CustomerFileSearch` フォルダを開きます。
3. `CustomerFileSearch.exe` をダブルクリックします。

Pythonのインストールは不要です。Windows 10/11の64bit環境、Windows PowerShell 5.1を使用します。EXEだけを移動せず、`_internal`・`assets`・検索スクリプトを含むフォルダ一式を保管してください。CSVを保存できる場所に展開してください。

## 検索する

1. 「検索対象の選択」で対象を選びます。既定はユーザーフォルダ、ドキュメント、ダウンロード、デスクトップです。各ドライブのゴミ箱も従来どおり検索します。親フォルダと子フォルダの重複は整理されます。
2. キーワードを確認し、必要なら「顧客名を登録」タブで顧客名を追加します。
3. 「検索開始」を押します。
4. 完了後、結果一覧・実行ログ・概要情報を確認します。「CSVを開く」でExcelなどの関連付けアプリを開けます。

CSVは既定でアプリの `実行結果` フォルダに、自動命名して保存されます。保存先は「設定」で変更できます。自動命名は検索ごとに新しい名前を生成します。手動で同じファイルを指定した場合は上書きを確認します。

検索中はキャンセルできます。列挙段階は件数が未確定なので動くバーを表示し、判定段階は件数と進捗率を表示します。検出件数はエンジンの250件ごとの報告と完了時に更新します。中止・失敗時に残ったCSVは、完成結果としては表示しません。

進捗欄の「処理ファイル」に現在処理中のファイル名を表示します。長い名前は省略表示し、マウスを重ねるとフルパスを確認できます。表示は約100ミリ秒間隔または進捗率の変化時に更新します。完了後は最後に表示したファイル名が残ります。

## VGAなど小さい画面で使う

640×480の画面でも操作できるよう、起動時のサイズを画面の作業領域に合わせます。狭いウィンドウでは左メニューが上部の選択メニューへ変わり、検索対象・条件・実行を縦に並べます。画面右側のスクロールバー、マウスホイール、Tabキーで下の操作へ移動できます。

検索開始時は進捗欄まで自動でスクロールします。検索結果を広く見るには上部メニューで「検索結果」を選びます。ウィンドウを広げると通常の横並び表示へ戻ります。

## キーワード編集・顧客名追加

- 「＋ 追加」で新しい語を入力します。編集したい行をクリックして「編集」、削除したい行をクリックして「削除」を押します。キーワード・顧客名のどちらのタブでも使えます。
- 両方の欄とも **1行に1件** 入力します。行を消すと削除できます。空行と完全に重複した行は整理します。
- 「条件を保存」で保存します。検索開始時と通常の終了時にも保存します。
- 「既定の語に戻す」はキーワードのみ復元し、登録した顧客名は維持します。
- キーワードはファイル名・保存パス・対応形式の本文から照合します。記号を含む語も文字列として扱い、正規表現として実行しません。
- 顧客名は部分一致で、大文字小文字を区別せず照合します。法人種別がない名前も追加できます。例：`青空商事`、`さくらクリニック`。
- 元の会社名・医療機関名の自動推定は常に有効です。キーワードを空にしても、会社名の自動推定と登録した顧客名による検索は継続します。
- 採点は従来どおりです。名前の一致はパス5点・本文5点、キーワードはパス3点・本文2点。通常は3点以上、低確信度を含める場合は2点以上を出力します。推定顧客名は最大5件です。
- 登録名も従来の会社名検出の採点に統合します。登録名と自動推定の両方が一致しても、同じ箇所について点数を重ねて加算しません。

設定と実行履歴は `%LOCALAPPDATA%\CustomerFileSearch` に保存します。同じWindowsユーザーでは、アプリを移動しても引き継がれます。設定には登録顧客名と保存先が含まれます。履歴は最大100件です。条件のJSONファイルを同時に複数のアプリから変更しないでください。

## 除外フォルダーを選ぶ（r2で追加）

1. 検索画面の「除外フォルダーを設定」、または左側の「設定」を開きます。
2. 「検索から除外するフォルダー」の「＋ フォルダーを追加」を押して選びます。複数登録できます。
3. 「保存」を押すと次回起動時も引き継がれます。検索開始・終了時にも保存します。
4. 解除したいときは一覧でフォルダーを選び「選択した除外を解除」を押します。Ctrlキーで複数選択できます。

指定したフォルダー自身と配下のサブフォルダーを除外します。たとえば `D:\資料\非公開` を指定しても `D:\資料\非公開_backup` は除外しません。除外指定は検索対象指定より優先します。既存のシステム・キャッシュ等の除外条件も引き続き有効です。除外先は現在の保存場所で判定するため、すでにゴミ箱へ移動された項目の元の場所には適用しません。

追加した除外先は実行ログ・CSV末尾の概要にも記録します。以前保存したキーワード・顧客名・設定は引き継がれます。

## 検索結果

- 列見出しで並べ替え。上部の入力欄で表示を絞り込みできます。表示操作でCSVは変更されません。
- 行をダブルクリックすると、推定根拠など全項目を確認できます。
- 行を選択し「保存フォルダを開く」でファイルの保存場所を開きます。ゴミ箱内の項目はアクセスできない場合があります。
- 「実行履歴」から過去の正常終了したCSVを読み込めます。CSVが移動・削除されている場合は「CSVを指定して読み込む」を使います。
- CSVは従来の10列・UTF-8 BOM付き・スコア順・末尾に実行概要を付記する形式を維持しています。

## 検索仕様と除外条件

元の検索エンジンをベースに使用しています。本文読取対象はテキスト系（txt/csv/tsv/md/json/xml/html/htm/ini/yaml/yml/eml/rtf）とdocx/xlsx/pptxです。PDF・旧Office形式・画像等の本文抽出やOCRは行いません。これらはファイル名と保存パスから判定します。

隠し・システムフォルダ（ゴミ箱を除く）、再解析ポイント、Windows等のシステム領域、アプリ自身・実行ログ・設定・復旧データのフォルダーは除外します。.logとApple・.codexの名前による専用除外はありません。キャッシュ・開発生成物とオンライン専用ファイルも既定で除外します。「設定」で該当オプションを変更できます。読取権限のない場所はスキップします。

元ファイルの作成・変更・削除は行いません。オンライン専用ファイルを含める設定はクラウドからのダウンロードを起こす場合があります。

## 開発・再ビルド

ソース版に含まれる `original` は受領した元のVersion 1.1.1です。`search-customer-files.ps1` の変更は、RulesPathからのキーワード・登録名の読込と照合、およびExcludePathsによる追加除外です。`bridge.ps1` が条件を渡し、進捗をGUIへ転送します。

Python 3.12 x64を用意し、ソースフォルダで実行します。

```powershell
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements-build.txt
.\.venv\Scripts\python.exe main.py
powershell -ExecutionPolicy Bypass -File build.ps1 -Python .\.venv\Scripts\python.exe
```

完成先は `dist\CustomerFileSearch` です。`build.ps1` はPyInstallerの `--onedir --windowed --noupx` を使用します。Qtライブラリは `_internal` 内に分離され、独自QSSは `assets/theme.qss` として編集できます。アイコンを変える場合は `assets/app.png` と複数サイズの `assets/app.ico` を置き換え、EXEを再ビルドしてください。

```powershell
.\.venv\Scripts\python.exe tests/test_engine.py
.\.venv\Scripts\python.exe tests/test_gui.py
```

テストは専用の一時データを使用します。検索エンジンの比較テストでは実ユーザーのゴミ箱列挙をテスト用コピーだけで無効化します。実際の配布版では有効です。クラウド同期・ゴミ箱・アクセス権は利用PCの状態に依存します。

## 商用配布に向けて

`LICENSE_NOTES_ja.md`、`licenses`、同梱の依存ライブラリソース資料を確認してください。onedir化だけでLGPLv3への準拠が確定するわけではありません。販売時の配布条件とソース提供方法の最終確認が必要です。

## CSV保存エラーへの対応（r3）

検索前にPowerShellから保存先への書き込みを確認し、検索完了時にも保存フォルダーを作成します。検索中に保存フォルダーがなくなっても、作成可能であれば通常どおり保存します。

結果はまず `%LOCALAPPDATA%\CustomerFileSearch\Recovery` に完全なCSVとして書き出し、その後に指定先へ保存します。指定先が使用中・アクセス拒否・切断などで利用できない場合は復旧用コピーを残し、画面には実際に保存した結果を表示します。「結果フォルダを開く」「CSVを開く」、履歴、CSV末尾の概要は実際の保存先に対応します。指定先への保存に成功した場合は復旧用コピーを削除します。

復旧用フォルダーにも書けない場合（空き容量不足など）は保存できません。エラーの要約を「実行ログ」上部に表示するので、「ログをコピー」で内容を共有できます。

今回報告された旧版のエラーは `DirectoryNotFoundException`（CSV保存先のパスの一部が見つからない）です。フォルダーが見つからなくなった外部要因までは画像から特定できません。旧版で保存に失敗した結果は、新版で再検索してください。

r3の検証環境では、新EXEの起動がWindowsのアプリケーション制御ポリシーでブロックされ、最終起動確認ができませんでした。ソース版のGUI・検索・保存処理は18件のテストを通過しています。利用先でも組織のポリシーでブロックされる場合は、管理者による確認が必要です。


## r4：検索対象と利用条件（2026-10-01）

設定画面で除外拡張子をカンマ・空白区切りで入力できます（例 `.tmp, .bak`、`tmp` / `*.tmp` も可）。大文字小文字は区別せず、最後の拡張子を照合します。空欄は除外なし。設定は保存・復元されます。

.logは本文検索も有効です。Appleと.codexの専用除外を解除しました。隠し属性、アクセス権、キャッシュ等の共通除外は引き続き適用されます。アプリの配置フォルダー（配下を直接指定した場合も含む）と実行ログ・設定・履歴・復旧データの保存領域は検索しません。実行ログタブはメモリ上の表示であり、独立したログ保存先はありません。アプリ配下の実行ログ・実行結果とユーザーデータ領域を常時除外します。

Copyright © 2026 株式会社インフォアゲイン

利用料金
商用・非商用を問わず、無償で利用できます。

サポートについて
個別の技術サポートは提供しません。保守・更新・不具合修正の提供もお約束しません。

利用前にご確認ください
検索結果には誤検出や見落としがあります。重要なデータは事前にバックアップし、結果をご自身で確認してください。このツールはファイルの削除やデータの完全消去を行うものではありません。

保証と責任について
現状のまま提供し、動作・検索結果の正確性・完全性・目的への適合性を保証しません。法令上認められる範囲で、利用または利用できなかったことによるデータ消失、業務中断、逸失利益などの損害について、株式会社インフォアゲインは責任を負いません。
ただし、同社の故意・重過失による損害や、消費者契約法その他の強行法規により免責できない責任は除きます。消費者契約法に反する責任の全部免除・一部免除を定めるものではありません。

著作権・第三者ライセンス
独自部分の著作権は株式会社インフォアゲインに帰属します。第三者のライブラリ・素材の権利は各権利者に帰属します。
PySide6・Qt等にはそれぞれのライセンスが適用されます。この利用条件は、LGPL等に基づくライブラリの改変・交換・再リンクや、そのための解析等の権利を制限しません。

## 履歴・ログのクリア

実行履歴画面の「履歴をクリア」は、確認後に履歴記録のみを削除します。結果CSV・設定・復旧CSVは削除しません。実行ログタブの「ログをクリア」は画面内のログ表示とエラー詳細表示を消去します。検索中は両ボタンとも無効です。
