Tips

大きなファイルを操作する際の選択肢

日付2007/07/23
ID46396 (英語原文参照)
バージョン2004
プラットフォームMac & Win

この記事は、最新ではないバージョンに関連した方法について解説しています。

最新のバージョンでは推奨されていないか、または他の方法で簡単に実現できる可能性があります。

大きなファイルをローカルでコピーを行ったり、他のマシンへ移動するなどという操作は、しばしば行われます。こうした操作を行う選択肢の幅をOSのコマンドにも広げておくのは、有意義なことです。

LAUNCH EXTERNAL PROCESS

MacOS XおよびWindows上の4th DimensionではLAUNCH EXTERNAL PROCESSコマンドで外部プロセスを起動することが出来ます。これを利用して次のような方法で、ローカルファイルシステムにある大きなファイルを操作できます。

コピーの方法例(MacOS):
LAUNCH EXTERNAL PROCESS("cp /path/to/source/file /path/to/target/file")

コピーの方法例(Windows):
LAUNCH EXTERNAL PROCESS("copy /path/to/source/file /path/to/target/file")

移動の方法例(MacOS):
LAUNCH EXTERNAL PROCESS("mv /path/to/source/file /path/to/target/file")

移動の方法例(Windows):
LAUNCH EXTERNAL PROCESS("move /path/to/source/file /path/to/target/file")

削除の方法例(MacOS):
LAUNCH EXTERNAL PROCESS("rm /path/to/source/file /path/to/target/file")

削除の方法例(Windows):
LAUNCH EXTERNAL PROCESS("del /path/to/source/file /path/to/target/file")

リモートシステムにある大きなファイルを取り出すには、次のような方法で行うことも出来ます。

scpコマンドの利用例(MacOS):
LAUNCH EXTERNAL PROCESS("scp localfile username@ftp.4d.com:.")

コマンドの最後尾の '.' に注目してください。これは誤りではなく必要なものです。(詳細はscpコマンドマニュアル参照:man scp)

Windowsにはscpコマンドはありません。scpを実行するにはサードパーティ製ユーティリティが必要になります。

似たような方法としてFTPコマンドを利用して、リモートシステムにある大きなファイルを取り出すこともできます。

FTPコマンドの利用例(MacOS/Windows):
LAUNCH EXTERNAL PROCESS("ftp ftp://user:password@host/path")

ファイルを操作する方法を色々と紹介させていただきましたが、LAUNCH EXTERNAL PROCESSコマンドを使う方法でお勧めは「cURL」を使う方法です。cURLはURLシンタックスでファイルの操作を行うためのコマンドラインツールで、FTP、FTPS、HTTP、HTTPS、SCP、SFTP、TFTP、TELNET、DICT、FILE 等をサポートします。詳しく言えば、SSL暗号化通信によるHTTP POST、HTTP PUT、FTPアップ/ダウンローデイング(再接続も可能)、プロキシ、クッキー、ユーザ/パスワード認証(Basic, Digest, NTLM, Negotiate, kerberos...)等、ありとあらゆる方法が利用できます。詳細は、cURLのホームページを参照してください。

cURLホームページ:
http://curl.haxx.se/docs/manpage.html

HTTPのcURLを用いた操作に関するTech Note:
/TechNote/277/

4D Internet CommandsプラグインのFTPコマンド:
http://www.4d.com/docs/ICU/ICU00006.HTM