内容梗概
ストレージの空き容量が不足しがちな現代のPC環境において、不要なファイルを適切に処理し、ストレージの圧迫を防ぐことが求められている。既存のツールでは、自動削除や通知機能が不十分であり、特定のフォルダやファイルに対する細かい設定が難しく、ユーザが意図しないファイルが削除されるリスクがある。
そこで、本論文では、削除条件と通知条件の設定が可能なファイル削除アプリケーションの開発をする。本アプリケーションはElectronを用いてデスクトップアプリケーションとして実装されている。また、データベースとしてSQLite3を使用している。開発したアプリケーションを利用することで、ユーザは最終更新日、ファイルサイズ、指定日時を基に削除条件を設定できる。また、通知条件が満たされた際に通知を受け取ることが可能である。
開発したアプリケーションは以下のURL からダウンロード可能である。対応OSはWindows11である。https://drive.google.com/file/d/1DHGTPB6xCj2XXH56HwwFdR8GX-ahqJLF/view?usp=drive_link
はじめに
ブラウザ等からダウンロードしたファイルやアプリケーションが長期間使用されずに保管されることがあり、それがストレージを圧迫する原因となっている。特に、授業等で使用するファイルやアプリケーションなどは保存場所が指定または推奨されている場合が多いため、一度指定された場所に保存した後、利用が終わっても削除されずにそのまま放置されることが少なくない。さらに、これらのファイルは、必要な場面ではすぐにアクセスできるようにするため、ユーザーが積極的に整理を行わないまま保存され続ける傾向がある。その結果、不要になったファイルやアプリケーションが蓄積し、ストレージを圧迫する要因となる。このような状況において、後から削除しようとした際に対象を探し出し、必要なファイルかどうかを判断するための確認作業に時間がかかる場合がある。
既に、ファイル削除のためのアプリケーションは存在し、定期的に指定したフォルダやディレクトリ内のファイルを確認し、条件を満たすファイルを削除する機能を提供している。しかし、このようなアプリケーションでは、あらかじめ指定したファイルを「最終更新日から何日経過で削除する」といった細かい条件を設定することはできない。さらに、通知についても、個々のファイルごとに通知の有無を設定する機能がなく、利便性が十分とは言えない。
そこで本論文では、削除条件と通知条件を細かく設定できるファイル削除アプリケーションを開発する。本アプリケーションでは、ファイルやフォルダをエクスプローラー上で参照して選択又はドラッグアンドドロップで追加する、パスを直接指定するといった3種類の方法でファイルやフォルダの情報を取得することができる。取得したファイルからファイルパス、最終更新日、ファイルサイズなどの情報を収集する。
収集した情報を元に、個々のファイルごとに最終更新日やファイルサイズ、指定日時を削除条件や通知条件として設定可能であり、設定したファイルを一覧表示することができる。さらに、条件を満たしたファイルを自動で削除するか、手動で削除するかを選択可能であるほか、通知の有無についても設定できる。これらの機能を通じて、ユーザーが不要なファイルを効率的に把握し、ストレージの圧迫を防ぐことを目指している。
関連研究
関連研究として既存のツールについて挙げていき、それぞれのツールの概要説明を行った後、そのツールの問題点及び今回開発したアプリケーションと異なる点などについて述べる。
Windowsには、Storage Sense[1]といった機能やDisk cleanup[2]等のツールがある。Storage Sense[1]は一時ファイルやゴミ箱などにあるファイルを定期的に自動で削除し、空き容量を確保することができる。ユーザが手動でクリーンアップを実行する必要がなく、自動でファイルを削除することでストレージの空き容量を確保することできる。しかしながら、Storage Senseはダウンロードフォルダ内のファイルに対して自動削除が行われ、他のフォルダに移動したファイルには対応できない。ユーザがダウンロードフォルダから他のフォルダにファイルを移動した場合、そのファイルはStorage Senseの対象外となり、削除されないまま残ることになる。このため、ユーザは対象外のファイルは手動でファイルを整理する必要がある。
Disk cleanup[2]は、システムの不要なファイルを削除することでストレージの空き容量を確保することができる。一時ファイル、キャッシュファイル、ダウンロードファイルなどのシステムが不要と判断したファイルを削除する。しかし、Disk cleanupはクリーンアップを行ってもストレージの空き容量が十分に確保されない場合がある。また、特定のフォルダやファイルに対する細かい設定が難しく、ユーザが意図しないファイルが削除されるリスクがある。
Winzip Duplicate File Finder[3]は、Winzipに搭載されている重複ファイル検出ツールである。ユーザが重複しているファイルを検出し、削除することでストレージの空き容量を確保することを目的としている。そのため、Winzip Duplicate File Finderは重複ファイルの検出と削除に特化しており、不要なファイルの自動削除や通知機能がない。不要なファイルが重複していない場合にも存在する可能性があり、それらのファイルを検出することができない。
CCleaner[4]は、システムの不要なファイルやレジストリのエントリを削除するためのツールである。システムのパフォーマンスを向上させることを目的としているが、以下のような課題がある。まず、CCleanerはユーザが手動でクリーンアップを実行する必要があり、自動化が不十分である。ユーザは定期的にクリーンアップを行う必要があり、手動で実行する手間がかかる。また、特定のフォルダやファイルに対する細かい設定が難しく、ユーザが意図しないファイルが削除されるリスクがある。さらに、レジストリのクリーンアップはシステムの安定性に影響を与える可能性があり、慎重な操作が求められる。
DiskInfo[5]は、ディスクの使用状況を視覚的に表示するツールであり、ユーザがディスクの空き容量や使用容量を簡単に把握できるようにする。ディスクの使用状況を円グラフや棒グラフで表示し、どのフォルダやファイルが多くの容量を占めているかを視覚的に示す。しかし、DiskInfoはディスクの使用状況を表示は行うが、不要なファイルの自動削除や通知機能がないため、ユーザが手動でファイルを整理する必要がある。また、大量のファイルが存在する場合、表示が遅くなることがあり、ユーザが必要な情報を迅速に取得することが難しい場合がある。
最後に、表1に既存ツールと本論文で開発するアプリケーションとの機能をまとめる。既存のツールでは自動削除や通知機能が不十分であり、特定のフォルダやファイルに対する細かい設定が難しい。一方、本論文で開発するアプリケーションは、重複ファイルの検出機能はないが、既存のツールに比べて自動削除機能や通知機能が充実しており、特定のフォルダやファイルに対する細かい設定が可能である。
ツール | 自動削除 | 手動削除 | 重複ファイル検出 | 不要ファイルの通知 | 細かい設定 |
---|---|---|---|---|---|
Storage Sense | 〇 | ✖ | ✖ | ✖ | ✖ |
Disk Cleanup | ✖ | 〇 | ✖ | ✖ | ✖ |
Winzip Duplicate File Finder | ✖ | 〇 | 〇 | ✖ | ✖ |
CCleaner | ✖ | 〇 | ✖ | 〇 | ✖ |
DiskInfo | ✖ | 〇 | ✖ | ✖ | ✖ |
開発する アプリケーション | 〇 | 〇 | ✖ | 〇 | 〇 |
アプリケーションの構成
図1にアプリケーションの全体構成を示す。本アプリケーションは、Electron を使用してデスクトップアプリケーションとして実装されており、アプリケーションとしては、メインプロセスとレンダラープロセスの2 種類のプロセスで動作する。レンダラープロセスは、ユーザが直接操作する部分であり、アプリケーションのウィンドウ上でファイルの削除条件や通知条件の設定を行うといったファイル設定操作を行うことができる。メインプロセスは、データの保存や処理を担当する部分であり、データベースとしてSQLite3 を使用している。ユーザが設定した削除条件や通知条件といった情報はデータベースに保存される。レンダラープロセスでの操作によりメインプロセスのデータが編集され、ユーザが行った変更は即座にデータベースに反映される。
また、メインプロセスからレンダラープロセスにデータが送信され、ユーザの操作結果が反映される。例えば、アプリケーションを起動した際やウィンドウのリロードを行った際に、メインプロセスからレンダラープロセスにデータが送信され、ユーザが設定した削除条件や通知条件が表示される。このように、メインプロセスとレンダラープロセスは双方向に通信を行っている。なお、メインプロセスとレンダラープロセスの通信にはIPC(Inter-Process Communication)を使用しているが、SQLite3 の操作はメインプロセス内で直接行っている。以上のように、本アプリケーションはメインプロセスとレンダラープロセスの連携により、ユーザの操作を適切に処理するように設計されている。

アプリケーションの機能
開発したアプリケーションで実装した機能について述べる。このアプリケーションには、進捗状況表示機能、削除機能、通知機能、常駐機能が実装されている。それぞれ、以下で説明する。
進捗状況表示機能
削除条件が満たされるまでの進捗状況を表示する機能がある。削除条件と通知条件を設定を行った後、削除予定のファイル一覧に表示される。ユーザは、ファイルが削除されるまでの残り時間やサイズを確認することができる。最終更新日から指定期間経過後に削除する条件の場合、対象のファイルが更新されると、残り時間がリセットされる。
また、自動削除がオフの設定で、条件を満たした場合は残り時間やサイズの表示が消え、「削除条件を満たしました」と表示される。最新の進捗状況を確認するためには、画面をリロードするか、アプリケーションを再起動する必要がある。進捗状況表示機能の詳細は以下の通りである。
- 残り時間の表示: 削除条件が最終更新日ベースまたは日時指定の場合、ファイルが削除されるまでの残り時間と通知されるまでの残り時間が表示される。残り時間は秒、分、時間、日、週の単位で表示され、ユーザは削除までの正確な時間を把握することができる。
- 残りサイズの表示:削除条件がサイズベースの場合、ファイルが削除されるまでの残りサイズと通知されるまでの残りサイズが表示される。残りサイズはKB、MB、GB の単位で表示され、ユーザは削除までの正確なサイズを把握することができる。
- 並び替え:削除予定のファイル一覧は、自動削除が有効なものを優先的に上に表示し、削除の進行率が大きいものほど上に表示されるように並び替えられる。これにより、ユーザは削除の進行状況を一目で把握することができる。
削除機能
ユーザは設定したファイルの削除条件を満たしたファイルを削除することができる。削除条件には、最終更新日から指定期間経過後に削除、ファイルサイズが指定値を超えたら削除、指定日時を超えたら削除の3 つのいずれかの条件を設定できる。また、ファイルが条件を満たした場合に自動で削除するかどうかを設定することができる。設定を完了することで、データベースに保存される。削除に関する設定は以下のような詳細な設定が可能である。
- 削除条件の選択: ユーザはドロップダウンメニューから削除条件を選択することができる。
- 期間の設定: 最終更新日から指定期間経過後に削除する場合、期間を秒、分、時間、日、週の単位で設定することができる。
- サイズの設定: ファイルサイズが指定値を超えたら削除する場合、サイズをKB、MB、GB の単位で設定することができる。
- 日時の設定: 指定日時を超えたら削除する場合、具体的な日時をカレンダーから選択することができる。
- 自動削除の有効化: 自動削除を有効にするチェックボックスをオンにすることで、条件が満たされた場合に自動的にファイルが削除される。
- 備考の入力: ユーザは備考欄に自由にメモを入力することができる。
削除方法は、手動削除と自動削除がある。自動削除が有効な場合、削除条件が満たされた場合に自動的にファイルが削除される。自動削除を有効にしていない場合、削除条件が満たされた場合は手動で削除する必要がある。この場合は削除条件を満たしたすべてのファイルを一括で削除することができる。
また、ユーザは削除予定のファイル一覧から任意のファイルを条件を満たしていなくても削除することができる。この操作は、削除条件を満たしていない場合でも削除することができる。いずれの削除方法においても、正常に削除が行われた場合、データベースと削除予定のファイル一覧から削除され、ファイル自体も削除される。そのうえで、削除が完了した旨のメッセージが表示される。何らかの理由で削除に失敗した場合は、エラーメッセージが表示される。
通知機能
通知機能は、ユーザがファイルの削除を忘れないようにするための機能であり、通知を有効にする設定を行うことで通知条件を、削除条件で指定された条件と同様の条件で通知のタイミングを設定することができる。例えば、削除条件に最終更新日から指定期間経過後に削除の条件を設定した場合、通知条件は最終更新日から指定期間経過後に通知になる。
通知条件が満たされた場合、アプリケーションはシステム通知を通じてユーザに通知を行う。通知はデスクトップの右下にポップアップとして表示され、ユーザは通知を確認することができる。通知には、対象のファイルパスと削除時間が近づいていることや、ファイルサイズが指定値に近づいていることが含まれる。基本的には通知は一度しか行われないが、最終更新日ベースの場合は残り時間のリセットによって通知条件が満たされるたびに通知が行われる。
常駐機能
アプリケーションウィンドウを閉じても終了せずに常駐する。現在は、常に常駐するようになっており、システムトレイにあるアプリケーションアイコンのコンテキストメニューから、アプリケーションを終了するを選択することで、アプリケーションを終了することができる。
アプリケーションの使用方法
アプリケーションの使用方法について説明する。実際にアプリケーションを起動し、設定を行い、削除予定ファイルの一覧表示、通知、削除の実行を行い、アプリケーションを終了するまでの手順を説明する。テストケースとして、以下の3 つを削除する設定を行う。
- C:\Users\ht22a075\Documents\ise-robot
- C:\Users\ht22a075\Downloads\ 情報システム実験.docx
- C:\Users\ht22a075\Pictures\DB 第三正規形.png
ファイルパスの指定
図2に、ファイルパスを指定した画面を示す。ファイルパスを直接入力す場合は、入力欄にファイルパスを入力する。ファイルパスの入力欄には、余分な引用符を自動的に取り除く機能があり、ユーザが正確なファイルパスを入力できるようにサポートしている。ドラッグアンドドロップや「参照」ボタンを押下してファイルパスを選択することで、ファイルパスを指定すると、入力欄にファイルパスが表示される。今回はドラッグアンドドロップでファイルパスを指定している。

削除条件と通知条件の設定
図3は、ファイルパスを指定後に「削除と通知の設定へ」ボタンを押下すると、出現する画面を示す。この画面では、削除条件と通知条件を設定することができ、自動削除や通知のオンオフも設定できる。指定したファイルパスが存在しない場合は、「保存」ボタンを押下した際にエラーメッセージが表示される。

次に、図4に、それぞれの削除条件と通知条件を設定し、「保存」ボタンを押下直後の削除予定のファイル一覧を示す。この際にそれぞれの削除条件と通知条件は、以下のように設定している。
- C:\Users\ht22a075\Documents\ise-robot
– 削除条件: 最終更新日から3 日経過後に削除
– 通知条件: 最終更新日から1 日経過後に通知
– 自動削除: オン - C:\Users\ht22a075\Downloads\ 情報システム実験.docx
– 削除条件: ファイルサイズが50KB を超えたら削除
– 通知条件: ファイルサイズが40KB を超えたら通知
– 自動削除: オフ - C:\Users\ht22a075\Pictures\DB 第三正規形.png
– 削除条件: 2024/12/12/23:59 に削除
– 通知条件: 2024/12/11/23:59 に通知
– 自動削除: オン

いずれの設定も、通知はオンにしており、備考には何も記載していない。「保存」ボタンを押下
直後は、並び替えが適切に行われていない場合があるが、ファイルの追加が終了した際に、ウィン
ドウをリロードすることで、正しく並び替えられる。
削除予定ファイルの一覧表示
図5に、図4から時間経過やファイルの更新を行い、リロードされた際の削除予定ファイルの一覧を示す。図4の画面からの変化は以下の通りである。
- C:\Users\ht22a075\Documents\ise-robot
– 時間経過: 12 時間13 分経過
– ファイルの更新: 2024/12/11 12:07 に更新 - C:\Users\ht22a075\Downloads\ 情報システム実験.docx
– ファイルサイズの増加: 2.44KB 増加 - C:\Users\ht22a075\Pictures\DB 第三正規形.png
– 時間経過: 12 時間13 分経過

変化を反映した削除予定ファイルの一覧から、表示が適切に行われていることが確認できる。最終更新日で削除条件を設定したファイルは、最終更新日が更新されるとタイマーがリセットされており、ファイルサイズが変化したファイルは、変化を反映したファイルサイズが表示されている。
通知、削除の実行
図6に、通知後の削除予定ファイルの一覧を示す。通知された対象のファイルは、「通知まであと:」の項目が消え、削除予定ファイルの一覧に表示されなくなる。一度通知されたファイルは、再度通知されることはない。再度通知を行う場合は、再度設定を行う必要がある。

次に、図7に、対象ファイルが削除されていないことと削除前の削除予定ファイルの一覧を示す。この例では、自動削除がオフになっているファイルを削除する。


図7 対象ファイルが削除されていないことの確認と削除予定ファイルの一覧
最後に、図8に、対象ファイルが削除されていることと削除後の削除予定ファイルの一覧を示す。削除が行われた場合、削除されたファイルは削除予定ファイルの一覧に表示されなくなり、メッセージが表示される。ストレージ内のファイルも削除される。この際に削除されたファイルは、ゴミ箱に移動しない。


図8 対象ファイルが削除されていることの確認と削除後の削除予定ファイルの一覧
設定の取り消し
図9に、「変更」ボタンを押下した際に出現する削除条件と通知条件の変更画面を示す。この画面では、行った設定の変更や取り消しを行うことができる。変更するファイルが存在しない場合は、「保存」ボタンを押下した際にエラーメッセージが表示される。

次に、図10に、設定の取り消しを行った削除予定ファイルの一覧を示す。設定の取り消しを行
うと、削除予定ファイルの一覧に表示されなくなる。また、この際にメッセージは表示されない。
ストレージ内のファイルは削除されない。

常駐化している場合の挙動
図11に、アプリケーションが閉じられている際に削除が行われることを示す。アプリケーションが閉じられている際に削除が行われた場合に通知は行われない。次にアプリケーションを開いた際に、削除予定ファイルの一覧から表示されなくなる。ストレージ内のファイルも削除される。


図11 アプリケーションが閉じられている際に削除が行われることの確認
アプリケーションの終了
図12に、アプリケーションを終了する前と後のシステムトレイを示す。アプリケーションを終了する際には、トレイアイコンの「quit」を押下することで終了できる。アプリケーションを終了すると、アプリケーションが常駐している状態が解除される。この状態で削除条件や通知条件を満たした場合は、アプリケーションの削除や通知は行われない。次にアプリケーションを起動した際に削除や通知が行われる。


図12 アプリケーションの終了前と終了後のシステムトレイ
まとめと今後の課題
現代は、ブラウザ等からダウンロードしたファイルやアプリケーションが長期間使用されずに保管されることがストレージの圧迫の原因となっている。特に、授業等で使用するファイルやアプリケーションは、利用が終わっても削除されずに放置されることが多い。また、既存のアプリケーションでは、細かい条件設定や通知機能が不十分であり、ユーザの利便性が十分とは言えない。そこで、本論文では、削除条件と通知条件の設定ができるファイル削除アプリケーションの開発を行った。本アプリケーションはファイルを選択し、最終更新日やファイルサイズ、指定日時を削除条件や通知条件として設定できる。条件を満たしたファイルは自動または手動で削除され、通知機能により適切なタイミングで通知が行われる。
今後の課題として、削除条件を満たした際にファイルを削除するだけでなく、別のフォルダに移動する機能の追加が挙げられる。また、既存のアプリケーションで実装されているような、削除対象のファイルに対してタグやラベルを付与して整理する機能や、削除されたファイルの履歴を確認する機能、さらにファイルのソートや絞り込みの機能を追加で実装し、より使いやすさを向上させることも今後の課題である。
参考文献
[1]Storage sense,available at https://support.microsoft.com/en-us/windows/manage-drive-space-with-storage-sense-654f6ada-7bfc-45e5-966b-e24aded96ad5
[2] Disk cleanup, available at https://support.microsoft.com/en-us/windows/free-up-drive-space-in-windows-85529ccb-c365-490d-b548-831022bc9b32
[3] Winzip duplicate file finder, available at https://www.winzip.com/en/learn/tips/file-management/duplicate-file-finder/
[4] Ccleaner, available at https://www.ccleaner.com/ja-jp/ccleaner
[5] Diskinfo, available at https://www.vector.co.jp/soft/winnt/util/se475617.html
コメント