DesktopIniManager v4 機能概要
DesktopIniManager（DIM）は、フォルダー／ソリューションの解析、ファイル検索、Scoped Grep、フォルダー比較、DIFF表示、desktop.ini によるフォルダーアイコン管理を統合した、読み取り中心の開発支援ツールです。
基本設計として、ファイル内容をDIM自身が編集・保存する機能は持ちません。検索・解析・比較・確認・外部ツールへの受け渡しに徹することで、DIMを使用したことによる意図しないファイル変更を発生させない構成としています。
1. メイン画面
Target／ファイル検索
検索対象となるルートフォルダーを「Target」として設定します。
「Target File Search」からTarget配下のファイルを検索できます。フォルダー名も検索対象となり、検索結果から前後のヒット位置へジャンプできます。
フォルダーツリーでフォルダーをチェックしている場合は、そのフォルダー配下だけを検索する「Scoped File Search」として動作します。
フォルダー／ソリューション解析
Targetを解析すると、物理フォルダー構造とVisual Studioソリューション構造をそれぞれ表示します。
物理フォルダーでは、親フォルダーを選択すると配下のファイルをまとめてファイルリストへ表示します。
直接そのフォルダーに所属するファイルはリスト上位に白文字で表示し、下位フォルダーに所属するファイルは灰色で区別します。
Solution表示では、Visual Studioのソリューションエクスプローラーに近い構造で表示します。ただし、参照などDIMで不要な項目は省略します。
.git、.vsなど、作業対象として不要な管理フォルダーは表示対象外です。
フォルダーツリー操作
フォルダーツリーでは以下を操作できます。
- 全フォルダーのチェックON／OFF
- チェック状態の反転
- ツリー全体の折りたたみ／展開
- チェック済みフォルダーのみ表示／非表示
- フォルダーツリー表示サイズの拡大／縮小
- フォルダーリストフィルター
- Targetルート行の固定表示
- フォルダーをチェックすると、対象フォルダーのアイコンをTargetフォルダーアイコンへ切り替えて選択状態を視覚的に表示
検索結果を表示する検索タブでは、ヒットしたファイルをマーキングします。
ファイルリスト上のファイルをクリックすると、そのファイルが所属するフォルダーをフォルダーツリー上で自動選択します。
表示形式は一覧表示のほか、2列／3列のアイコンブロック表示に切り替えられます。
desktop.ini／フォルダーアイコン管理
DIMの原点となるdesktop.ini管理機能です。
フォルダーへ設定したdesktop.iniをリセットできます。また、チェックしたフォルダーへ選択中のアイコンを設定し、desktop.iniを生成できます。
アイコンボックスから使用可能なアイコンを一覧表示できます。
desktop.iniを.gitignoreへ追加し、Gitの監視対象から除外することもできます。
フォルダーリスト右クリック
フォルダーリストのコンテキストメニューから以下を実行できます。
- 選択フォルダーをTargetに設定
- エクスプローラーで開く
- tree結果をエディターへ出力
- tree /f結果をエディターへ出力
- ファイルリストをエディターへ出力
- 選択フォルダーをGrep Targetに設定してScoped Grepを開く
Solution操作／ビルド
Solutionタブでは右クリックメニューからビルドを実行できます。
Visual Studio Buildと.NET SDK Buildに対応し、ビルド構成はProjectから取得します。
Scoped操作
フォルダーをチェックした状態でファイル検索またはGrepを実行すると、チェックされたフォルダー配下だけが対象になります。
これにより、
Scoped File Search
と
Scoped Code Grep
を同じフォルダー選択状態から利用できます。
メイン画面から「Developer Differencer」および「Scoped Grep」へ直接遷移できます。
ドラッグアウト
フォルダーリストからフォルダーをドラッグアウトできます。
この場合、選択フォルダーそのものと、そのフォルダーに直接所属するファイルを対象とします。
ファイルリストからのドラッグアウトでは複数ファイル選択に対応します。
Batch File Launcher
登録したバッチファイルや外部コマンドをDIMから起動できます。
引数には以下のプレースホルダーを使用できます。
%d%：Directoryフルパス
%f%：ファイルリストで選択しているファイルのフルパス
%n%：ファイル名のみ
多言語対応
UI言語は4言語に対応します。
英語、日本語、中国語（繁体字）、韓国語を切り替えられます。
複数プロセス／5スロット
DIMは5つの独立した起動スロットを持ちます。
In Useは現在のプロセスが使用しているスロット、Freeは未使用スロットを示します。
Freeスロットを押すと、そのスロットを使用する新しいDIMプロセスを起動します。
別プロセスが使用中のスロットはOpenとなり、押すとそのDIMを前面へ表示します。
テーマ
Dark、Light、およびDIM1～DIM5のテーマを選択できます。
その他
履歴情報をまとめて初期化する「履歴オールリセット」を備えています。
2. Developer Differencer
Developer DifferencerはSourceとTargetのフォルダー構造を比較する機能です。
Sourceは黄色、Targetは青色で統一して表示します。
Source／Targetパスを選択した時点でインデックスを構築し、以後の比較を高速化します。ラベルボタンから明示的に再インデックスできます。
フォルダー比較
SourceとTargetについて、ファイル／フォルダー単位で比較します。
通常は更新日時とファイルサイズによる単純比較を行います。
日付比較をOFFにすると、ファイルサイズのみで差異を判定します。内容のハッシュ比較までは行いません。
片側だけに存在するファイル／フォルダーも比較対象です。
基本的にビルドによって生成される環境依存ファイルは比較対象から除外します。
obj、binについては個別に表示／非表示を切り替えられます。
比較結果タブ
比較結果は実行日時を持つタブとして保持します。
最大20タブまで保持できます。
21個目を作成する場合は、古いタブを削除して19件以下にしてから新しい比較を実行します。
タブは新しいものから左側へ表示します。
タブの×ボタンで個別削除でき、右クリックメニューから「全削除」「このタブ以外を削除」を実行できます。
比較結果フィルター
以下の条件を個別に表示／非表示できます。
- 同一フォルダー／ファイル
- 差異のあるフォルダー／ファイル
- Source側だけに存在するフォルダー／ファイル
- Target側だけに存在するフォルダー／ファイル
- objフォルダー／ファイル
- binフォルダー／ファイル
- チェック済みファイルのみ
基本状態では同一ファイルは非表示です。
チェック操作
通常、差異ルートとなる×付きフォルダー／ファイルを中心にチェック可能とし、同一判定されたファイルを手動で直接チェックすることはできません。
「Sameチェック切り替え」を使用すると、同一フォルダー内のSameファイルを一括してチェック／解除できます。
これにより、差異ファイルだけでなく同一ファイルも同期やZIPの対象へ含められます。
更新
比較全体の更新に加えて、選択フォルダー内だけを更新できます。
Solution CleanもDeveloper Differencerから実行できます。
ZIP／構造維持ドラッグアウト
Source／Targetそれぞれについて、チェックしたファイルをZIP化できます。
ZIPでは元の相対フォルダー構造を維持します。
さらにZIPアイコンそのものをドラッグアウトすると、チェックされた構成をフォルダー構造ごと外部へドラッグアウトできます。
ZIPを作らず、選択した差分構成そのものを取り出すための機能です。
ツリー表示
比較ツリーは伸縮でき、ツリーアイコンの表示サイズも拡大／縮小できます。
3. DIFF VIEW
比較結果リストのファイルをダブルクリックすると、DIM内蔵のDIFF VIEWを開きます。
バイナリファイルはDIFF VIEW対象外です。
Sourceファイルを黄色枠、Targetファイルを青色枠で表示します。
差分にはシンタックスハイライトを適用します。
中央には差分セクションマップと縦スクロールバーを配置し、ファイル全体のどこに差分が存在するかを確認できます。
上下左右キーによるスクロールに対応し、左右キーでは横方向にもスクロールできます。
Roll Up／Roll Downによるページ単位のスクロールにも対応します。
横方向はShift＋マウスホイール、およびサムホイールによるスクロールにも対応します。
Ctrl + ↑ / ↓ / ← / →によって差分位置や前後の差分ファイルへ移動できます。
専用ボタンからも、
- 前／次の差分へジャンプ
- 前の差分ファイルを読み込み
- 次の差分ファイルを読み込み
- Sourceを設定済みエディターで開く
- Targetを設定済みエディターで開く
- EXT：設定済み外部マージ／DIFFツールで開く
といった操作が可能です。
DIFF VIEWは読み取り専用です。
DIM自身にはマージ機能を持たせていません。これは機能不足ではなく、DIMの設計上の選択です。
DIMによる走査・検索・比較・閲覧ではファイル内容に変更を加えないことを保証し、意図しない文字コード、BOM、改行コード、その他のファイル状態変更に対する責務をDIMから切り離します。
編集やマージが必要な場合は、設定した外部ツールへ対象ファイルを渡します。
4. Scoped Grep
Scoped Grepは、指定した複数フォルダーを検索対象として扱えるGrep機能です。
フォルダーボックスにはGrep対象パスを表示し、フォルダーのドラッグ＆ドロップにも対応します。
複数フォルダーを登録し、それぞれのチェック状態によってGrep対象を選択できます。
更新ボタンを押すと、メイン画面のフォルダーチェック状態を取得します。
Scopedパス全体のチェックON／OFFにも対応します。
検索条件
以下の検索条件を利用できます。
- 正規表現
- 大文字／小文字の区別
- 単語単位検索
追加Grep
通常のGrepに加えて「追加Grep」を利用できます。
追加検索結果を単純にリスト末尾へ追加するのではなく、既に同一ファイルの検索結果が存在する場合は、そのファイルグループへ新しいヒットを追加します。
異なる検索条件による結果を、ファイル単位の構造を維持したまま蓄積できます。
結果全体はリストクリアで初期化できます。
Language Profile
Language ProfileによってGrep対象拡張子を管理します。
言語別のテンプレートを持ち、対象拡張子は追加／削除などの編集が可能です。
Code GrepとDocument Grep
DIMではCode GrepとDocument Grepを明確に分離します。
Document Profileを選択した場合はExcel／PDF内部を対象とするDocument Grepになります。
Document Grepでは通常のTextファイルを対象にしません。Textも検索したい場合はPlain Profileを使用します。
逆にCode GrepにはExcel／PDFの内部検索を含めません。
これは意図的な仕様です。
CodeとDocumentを一度の検索で混在させる「全ファイル万能Grep」はDIMでは行いません。
Grep結果
検索結果はファイル単位でグループ化します。
ヒットしたキーワードは赤字でマーキングします。
長い一致行については一致カラムを自動的に拡張し、必要に応じて横スクロールバーを表示します。
ファイルグループのヘッダーは折りたたみ／展開できます。
グループヘッダー自体を外部へドラッグアウトすることもできます。
結果にはフィルターを適用できます。
さらに、
- Grep結果をエディターへ出力
- Grep結果をファイルへ保存
- 新規Grepタブ追加
に対応します。
外部エディター連携
Grep結果をダブルクリックした際に起動するエディターを設定できます。
エディターごとに起動引数を設定でき、
- ファイルパス
- 行番号
- 列番号
を外部エディターへ渡せます。
主要エディター向けのプリセットも用意します。
共通キーボードショートカット

| キー | 対象 | 動作 |
|---|---|---|
| Ctrl + 1 | 共通 | メイン画面へ切り替え |
| Ctrl + 2 | 共通 | Developer Differencer（比較画面）へ切り替え |
| Ctrl + 3 | 共通 | Scoped Grep画面へ切り替え |
| Ctrl + Space | 共通 | メイン → Developer Differencer → Scoped Grep の3画面を順番に切り替え |
| ↑ / ↓ | DIFF VIEW | 縦スクロール |
| ← / → | DIFF VIEW | 横スクロール |
| Roll Up / Roll Down | DIFF VIEW | ページ単位でスクロール |
| Shift + マウスホイール | DIFF VIEW | 横スクロール |
| サムホイール | DIFF VIEW | 横スクロール |
| Ctrl + ↑ / ↓ / ← / → | DIFF VIEW | 差分位置／前後の差分ファイルへ移動 |

Ctrl + Spaceは、画面番号を意識せず3つの主要画面を順次切り替えるためのトグル操作です。
