はじめに
フォルダ内のテキストファイルをまとめて一つに結合したい、という場面は意外と多いものです。今回は、Windows(MFC)環境で動作する、ドラッグ&ドロップ操作のみでファイルを結合できるシンプルなツール「AiSm(Minimum版)」を開発しましたので、その実装を紹介します。
このツールは「余計な機能を削ぎ落とした Minimum 版」として作成しており、ヘッダーファイル一つでロジックが完結する構成にしています。
開発の動機
生成 AI を利用する際、一度に送信できるファイル数やファイルサイズには制限があります。私は日常的にコードを生成 AI に提示して解析や修正をお願いしていますが、その際、毎回制限を気にしてファイルを分割して送るのが非常に手間でした。
そこで、ドラッグ&ドロップで複数のファイルを一括結合し、AI へ送信しやすい形式に変換するツール「AiSm」を自作しました。このツールは、生成 AI との対話をより円滑に進め、私の「AI との共同作業」の効率を最大化するために生まれたものです。
実装のポイント
1. ロジックをヘッダーに集約
処理の実体となる AS_Fnc_M.inc に、ドラッグ&ドロップの処理やファイル結合ロジックを集約させました。これにより、メインダイアログのコードがすっきりとしています。
2. 安全なバイナリ判定
テキスト結合ツールであるため、バイナリファイルが混入した際に誤動作しないよう、読み込み時にヌル文字をチェックしてスキップするようにしています。
// AS_Fnc_M.inc より抜粋
inline bool AS_IsBinaryFile(LPCTSTR pathName)
{
// 先頭 1024 バイトにヌル文字が含まれるか判定
// ...
}
3. 日時付きのユニークなファイル名生成
結合結果は %TMP%\AiSm_M\ に出力されます。ファイル名には現在日時を付与することで、何度もマージを行っても上書きミスが起きないようにしました。
使い方
- アプリを起動
- 結合したいファイルをリストへドラッグ&ドロップ
-
[マージ]ボタンを押す - 自動的にエクスプローラーが開き、結合されたファイルを確認可能
ソースコードと配布
本ツールのプロジェクト一式および、各ソースファイルの構成内容は以下より確認・ダウンロード可能です。
- プロジェクト一式: AiSm0608.zip のダウンロード
- プロジェクト構成ファイル: AiSm_20260608.txt
※ビルドには Visual Studio または Visual C++ 環境が必要です。
生成AIに読み込ませるための活用ステップ
本ツールで結合したファイルは、生成AIとの対話において「プロジェクトのコンテキストを一度に伝える」ために最適化されています。配布しているプロジェクト構成ファイル AiSm_20260608.txt と、主要コードのみを結合した AiSm_20260609.txt は、実際にツールで結合した出力サンプルになります。
以下の手順で、AIとの連携を試してみてください。
-
結合サンプルの確認: 配布している AiSm_20260609.txt 等をブラウザで開きます
-
内容のコピー: ブラウザ上で表示されたテキスト全体をコピーします
-
AIプロンプトへの貼り付け: 使用している生成AIの入力欄にそのまま貼り付け、以下のように指示を出します
「このコード一式を解析し、機能拡張の提案をしてほしい」
「この MFC アプリのドラッグ&ドロップ処理を解説してほしい」
これだけで、AIはプロジェクトの全体構造を瞬時に理解し、的確な回答を返してくれます。ファイルごとにアップロードする手間が省けるため、コーディングの試行錯誤が格段にスムーズになります。
今後の展望
今回は機能最小限の「Minimum 版」として公開しましたが、今後は更なる機能拡張を加えた「Full 版」を開発予定です。Full 版につきましては、今後公式サイトにて実行ファイル形式で公開予定です。
免責事項
本ツールおよび公開しているソースコードの使用により生じたいかなる損害についても,著作者は一切の責任を負いません.ご自身の責任において利用してください.引用・改変時は https://mish.work/ を明記してください.
(C) 2026 Iwao. All Rights Reserved.
