TRL-MTP

アプリケーション

TRL-MTPとは?

 TRL-MTPは簡単に言うと「MTPによるファイルのやり取りを少しだけ簡単にするためのツール」です。
バーコード照合チェックアプリ「KUSA」の「履歴出力」機能で出力されたファイルを取り出すために作ったツールになりますが、ある程度は汎用的に使えると思います。

MTPで接続したAndroid端末に参照用のマスタファイルをPCから送り込みたい場合や、Android端末上で収集・蓄積したデータファイルをPCへ取り込みたい場合には、Windowsのエクスプローラを使ってドラッグ&ドロップやコピペなど手作業でファイルのコピーを行う必要があります。

単純にコピーするだけならばいいのですが、コピー後にデータベースへの取り込み等を実行したい場合などは指定された場所へ正確にコピーしなければならないので、手作業が介在すると正確性に欠ける運用になってしまいます。

MTPを使ったファイルのやり取りが手作業になってしまうのは、バッチファイル(コマンドプロンプト)やアプリケーションから端末上のファイルを操作できないことが原因です。 コマンドプロンプトのcopyコマンドは使えません。VB.NETのSystem.IO.File.Copyメソッドは使えません。VBAのFilecopyステートメントは使えません。

知らない方からすると、バッチファイルやアプリケーションで「端末上の指定されたファイルを、PC上の指定されたフォルダに自動的にコピーする」ものが簡単に作れそうに思えるのですが、実はこれには特別なやり方が必要となります。

その特別なやり方を代行するのが「TRL-MTP」です。

基本機能

 では、「TRL-MTP」で何が出来るのかということを説明していきます。

  1. 端末上のファイルをPCへコピーする。
  2. PC上のファイルを端末へコピーする。
  3. 端末上のファイルを削除する。
  4. 端末上のファイルを改名する。
  5. 端末上にフォルダを作成する。
  6. 端末上に存在するファイルとフォルダ一覧を取得する。

なお、動作確認環境は「Windows 10 Pro(64bit)」です。「Windows 10 Home(64bit)」は同様に動くかなと思います。
※.NET Framework 4.xランタイムが必要になりますが、通常はインストールされています。

バーコード照合チェックアプリ「KUSA」の「履歴出力」機能で出力されたファイルを取り出すために作ったツールなのですが、まあ一般的に必要と思われる機能だけはおまけに付けておきました。
※申し訳ないのですが操作説明などは日本語のみ(Japanese only)です。残念ながら英語などの外国語は喋れません。一応、英語のリソースは付けているのでWindowsは日本語版以外でも使えると思います。

プログラムのダウンロードとインストール

 ダウンロード:TrlMtp_v1.0.2.1.zip

 Vectorさんでも配布を行っています。
  パソコンソフトを探すなら「Vector」

  • 個人・法人、商用・非商用に関係なく、無料でご利用いただけます。
  • 著作権は放棄していません。著作権は私「森山商店」にあります。
  • 本テキストファイルも含めた形(あなたが最初に手に入れた状態)であれば、配布も自由です。
  • TRL-MTPを利用した事によるいかなる損害も私は一切の責任を負いません。また、いかなる動作環境においても動作保証しておりません。実際にお試しいただき、継続的な使用に問題がないことを確認した上で、利用者の責任の上で使用して下さい。
  • 法令や条例、社会のルールに反する使用、他人を不愉快にするような使用方法は一切禁止とします。
  • TRL-MTPの全部または一部のリバースエンジニアリング、逆コンパイル又は逆アセンブルなどの解析作業は行わないでください。もっとほかの事に時間を有効に使ってください。

インストーラーなどはなく、単純に展開したフォルダをそのまま任意の場所において使います。フォルダ内の中身を全てパスが通ったところに置いてもいいかもです。

TrlMtp.exe
これが実行ファイル本体となりますが実行にはパラメータが必要になります。単独でそのまま実行してもパラメータエラーとなります。

TrlMtpLib.dll
これはTrlMtp.exeから呼び出されるライブラリです。必ずTrlMtp.exeと同じフォルダに置いてください。

\en\TrlMtp.resources.dll
これは日本語以外の環境で表示される英語のリソースです。必要であればTrlMtp.exeと同じフォルダにenフォルダのまま置いてください。まあ要らないかな。

※Windows10のセキュリティ機能である「Windows SmartScreen」により、「Windowsによって保護されました」みたいな警告画面が表示されますが、対応方法はネット上で探せば出てきます。

【アンインストール方法】
インストール時においたフォルダやファイルを削除してください。
また、ログインユーザー領域に以下のフォルダがある場合は削除してください。
C:\Users\(ログインユーザー名)\Documents\TrlMtp
C:\Users\(ログインユーザー名)\AppData\Local\TrlMtp
※インストール後、上記フォルダは一時ファイルや設定ファイルの保存に使用しています。書き込み制限がかかっていたりセキュリティソフトで制限がかかっていると「TRL-MTP」がうまく動作しない可能性がありますので、ご注意ください。

チュートリアル

使い方については順次ご紹介していきます。
TRL-MTPの使い方
ここでは一番簡単な方法をご説明します。

ショートカットを使って実行する

「TrlMtp.exe」を右クリックして「ショートカットの作成」を選択します。「TrlMtp.exe – ショートカット」というショートカットが出来ます。
今回はデバイスからPCへファイルをダウンロードするので、名前を「ファイル受信」に変更しました。

そして「ファイル受信」を右クリックして「プロパティ」を選択します。

「リンク先」のところにTrlMtp.exeの記述がありますので、これにパラメータを追記します。

C:\Users\myname\Documents\TrlMtp\TrlMtp.exe /C:DL /D:”PC\Xperia\内部共有ストレージ\Download\KUSA\*.txt” /A:”C:\Users\myname\Documents\TrlMtp\<BASE_NAME>.<BASE_EXT>” /B /M

それで「作業フォルダー」のほうはTrlMtp.exeがあるフォルダのままにしてください。

C:\Users\myname\Documents\TrlMtp\

で、[OK]で閉じたら「ファイル受信」を実行してみましょう。

はい。実行できたようです。パラメータについてはこのあと説明していきます。

パラメータ

パラメータは半角スペースで区切って指定してください。

(1)端末上のファイルをPCへコピーする。

コマンドパラメータ(/C)はDL(Download)です。以下のように指定します。
/C:DL

デバイスパスパラメータ(/D)に端末側のコピー元ファイルを指定します。
/D:”PC\Xperia\内部共有ストレージ\Download\KUSA\*.txt”

  • エクスプローラと同様に”PC\”から始まるパスで指定します。
  • パス自体は上記のようにダブルクォーテーションで囲みます。
  • 全角/半角/大文字/小文字は区別されます。
  • ワイルドカード(*と?)が使えます。

追加情報パラメータ(/A)にPC側のコピー先ファイルを指定します。
/A:”C:\Users\myname\Documents\TrlMtp\<BASE_NAME>.<BASE_EXT>”

  • ドライブ名から始まるフルパスで指定します。
  • パス自体は上記のようにダブルクォーテーションで囲みます。
  • ファイル名には以下のような変数値も指定できます。
変数値一覧
<BASE_NAME>コピー元ファイルのファイル名
<BASE_EXT>コピー元ファイルの拡張子
<YEAR>システム日時の年(yyyy)
<MONTH>システム日時の月(MM)
<DAY>システム日時の日(dd)
<HOUR>システム日時の時(HH)
<MINUTE>システム日時の分(mm)
<SECOND>システム日時の秒(ss)
<DATE>システム日時の日付(yyyyMMdd)
<TIME>システム日時の時刻(HHmmss)
<DATETIME>システム日時(yyyyMMddHHmmss)

このパラメータを指定すると、PC側に同名のファイルが存在する場合に上書き(Overwrite)します。これを指定していない場合はエラーとなります。
/O

進捗状況を表示したいときは以下のように指定します。
/P

実行確認と結果確認を行いたいときは以下のように指定します。 但し、進捗表示も行われます。よって、/Mを指定する場合には/Pは必要ありません。
/M

中止ボタンを有効にしたいときは以下のように指定します。 但し、進捗表示も行われます。よって、/Bを指定する場合には/Pは必要ありません。
/B

(2)PC上のファイルを端末へコピーする。

コマンドパラメータ(/C)はUL(Upload)です。以下のように指定します。
/C:UL

デバイスパスパラメータ(/D)に端末側のコピー先ファイルを指定します。
/D:”PC\Xperia\内部共有ストレージ\Download\KUSA\<BASE_NAME>.<BASE_EXT>”

  • エクスプローラと同様に”PC\”から始まるパスで指定します。
  • パス自体は上記のようにダブルクォーテーションで囲みます。
  • 全角/半角/大文字/小文字は区別されます。
  • ファイル名には前述した変数値(変数値一覧を参照)も指定できます。

追加情報パラメータ(/A)にPC側のコピー元ファイルを指定します。
/A:”C:\Users\myname\Documents\TrlMtp\*_Master.txt”

  • ドライブ名から始まるフルパスで指定します。
  • パス自体は上記のようにダブルクォーテーションで囲みます。
  • ワイルドカード(*と?)が使えます。

このパラメータを指定すると、端末側に同名のファイルが存在する場合に上書き(Overwrite)します。これを指定していない場合はエラーとなります。
/O

進捗状況を表示したいときは以下のように指定します。
/P

実行確認と結果確認を行いたいときは以下のように指定します。 但し、進捗表示も行われます。よって、/Mを指定する場合には/Pは必要ありません。
/M

中止ボタンを有効にしたいときは以下のように指定します。 但し、進捗表示も行われます。よって、/Bを指定する場合には/Pは必要ありません。
/B

(3)端末上のファイルを削除する。

※必ずデバイス上のすべてのバックアップを取り、そのうえで動作を慎重にご確認いただいてから実際の運用に使用してください。/RMよりも/RNを使って改名することで処理完了とする運用を推奨します。あとから手動でまとめて消したほうが安全です。
※フォルダは削除できません。

コマンドパラメータ(/C)はRM(Remove)です。以下のように指定します。
/C:RM

デバイスパスパラメータ(/D)に端末側の削除ファイルを指定します。
/D:”PC\Xperia\内部共有ストレージ\Download\KUSA\*.txt”

  • エクスプローラと同様に”PC\”から始まるパスで指定します。
  • パス自体は上記のようにダブルクォーテーションで囲みます。
  • 全角/半角/大文字/小文字は区別されます。
  • ワイルドカード(*と?)が使えます。

進捗状況を表示したいときは以下のように指定します。
/P

実行確認と結果確認を行いたいときは以下のように指定します。 但し、進捗表示も行われます。よって、/Mを指定する場合には/Pは必要ありません。
/M

中止ボタンを有効にしたいときは以下のように指定します。 但し、進捗表示も行われます。よって、/Bを指定する場合には/Pは必要ありません。
/B

(4)端末上のファイルを改名する。

※フォルダは改名できません。

コマンドパラメータ(/C)はRN(Rename)です。以下のように指定します。
/C:RN

デバイスパスパラメータ(/D)に端末側の改名ファイルを指定します。
/D:”PC\Xperia\内部共有ストレージ\Download\KUSA\*.txt”

  • エクスプローラと同様に”PC\”から始まるパスで指定します。
  • パス自体は上記のようにダブルクォーテーションで囲みます。
  • 全角/半角/大文字/小文字は区別されます。
  • ワイルドカード(*と?)が使えます。

追加情報パラメータ(/A)に改名後のファイル名を指定します。
/A:”<DATETIME>_<BASE_NAME>.bak”

  • ファイル名だけを指定します。名前を変えるだけで、フォルダは移動できません。
  • ファイル名は上記のようにダブルクォーテーションで囲みます。
  • 前述した変数値(変数値一覧を参照)も指定できます。

このパラメータを指定すると、改名後のファイルが存在する場合に上書き(Overwrite)します。これを指定していない場合はエラーとなります。
/O

進捗状況を表示したいときは以下のように指定します。
/P

実行確認と結果確認を行いたいときは以下のように指定します。 但し、進捗表示も行われます。よって、/Mを指定する場合には/Pは必要ありません。
/M

中止ボタンを有効にしたいときは以下のように指定します。 但し、進捗表示も行われます。よって、/Bを指定する場合には/Pは必要ありません。
/B

(5)端末上にフォルダを作成する。

コマンドパラメータ(/C)はCF(Create Folder)です。以下のように指定します。
/C:CF

デバイスパスパラメータ(/D)にフォルダ作成先の親フォルダを指定します。
/D:”PC\Xperia\内部共有ストレージ\Download\KUSA\”

  • エクスプローラと同様に”PC\”から始まるパスで指定します。
  • パス自体は上記のようにダブルクォーテーションで囲みます。
  • 全角/半角/大文字/小文字は区別されます。

追加情報パラメータ(/A)に作成フォルダ名を指定します。
/A:”My Files”

  • フォルダ名だけを指定します。
  • フォルダ名は上記のようにダブルクォーテーションで囲みます。

進捗状況を表示したいときは以下のように指定します。
/P

実行確認と結果確認を行いたいときは以下のように指定します。 但し、進捗表示も行われます。よって、/Mを指定する場合には/Pは必要ありません。
/M

中止ボタンを有効にしたいときは以下のように指定します。 但し、進捗表示も行われます。よって、/Bを指定する場合には/Pは必要ありません。
/B

(6)端末上に存在するファイルとフォルダ一覧を取得する。

コマンドパラメータ(/C)はGL(Get List)です。以下のように指定します。
/C:GL

デバイスパスパラメータ(/D)に取得対象のフォルダか、ファイルを指定します。
フォルダの場合の例:そのフォルダ内のフォルダ&ファイル一覧を取得します。
/D:”PC\Xperia\内部共有ストレージ\Download\”

ファイルの場合の例:そのファイル名に該当するファイル一覧を取得します。
/D:”PC\Xperia\内部共有ストレージ\Download\*.txt”

  • エクスプローラと同様に”PC\”から始まるパスで指定します。
  • パス自体は上記のようにダブルクォーテーションで囲みます。
  • 全角/半角/大文字/小文字は区別されます。
  • ファイル名にはワイルドカード(*と?)が使えます。

追加情報パラメータ(/A)に一覧を保存するPC側の出力ファイルを指定します。
コマンド完了後にこのファイルの中を参照してください。
/A:”C:\Users\myname\Documents\TrlMtp\GetList.txt”

  • ドライブ名から始まるフルパスで指定します。
  • パス自体は上記のようにダブルクォーテーションで囲みます。
出力ファイル仕様(文字コードがUTF-8のテキストファイル)
区分“FILE” または “FOLDER”
項目セパレータ水平タブ(HT):0x09
名称ファイル名 または フォルダ名
行セパレータ復帰改行(CR/LF):0x0D + 0x0A

終了コード

TrlMtp.exeは終了コードを返します。

終了コード対象コマンド内容
-1DL, UL, RM, RN, CF, GLオペレータによって中止。
0DL, UL, RM, RN, CF, GL正常終了。
1DL, UL, RM, RN, CF, GLパラメータが不正。
指定したパラメータに誤りがないか確認してください。
2DL, UL, RM, RN, CF, GLデバイスがオープンできない。
デバイスがMTPで接続済みであることを確認してください。デバイス名の指定に誤りがないかを確認してください。
3DL, UL, RM, RN, CF, GL対象ファイルやフォルダがない、指定されたファイルやフォルダがない、または指定されたパスが間違っている。
デバイスパスや追加情報の指定に誤りがないかを確認してください。指定したファイルやフォルダが実際に存在するかを確認してください。
4DL, UL, RN, CF既に同じ名前のファイルやフォルダが存在する。
デバイスパスや追加情報の指定に誤りがないかを確認してください。指定したファイルやフォルダが実際に存在するかを確認してください。
99DL, UL, RM, RN, CF, GL予期できないエラー。
指定したパラメータや動作環境に問題がないか確認してください。

コメント

タイトルとURLをコピーしました