4Dは、ファイルやフォルダのパスを簡単に管理できる2つの新しいコマンドで、開発者の生活をより快適なものにします。貴重な時間を節約する Path to objectこのコマンドは、1行のコードで、拡張子、ファイル名、親フォルダを抽出します。そして、異なるオブジェクトの属性を変更し、再結合して、新しいパスを構成することができます。 Object to path.
パスの要素を抽出する
を使えば Path to objectを使えば、パスはオブジェクトの属性として返されるいくつかの部分に簡単に分割することができます。
- 親フォルダ
- 名称
- 拡張子
- フォルダかどうか
// Split a path written with system delimiter
resources
$pathSys:=Pathto object("C:╱D╱resources╱4D.jpg")
//$pathSys.parentFolder="C:╱D╱resources╱4D"×So_2571↩
//$pathSys.name="4D"
//$pathSys.extension=".jpg"
//$pathSys.isFolder=False
このコマンドは、システムパスとPOSIXパスの両方をサポートしていることに注意してください。また、path入力パラメータの最後の文字から、フォルダを渡したかファイルを渡したかを判断することができます。
パスの構築
これで、パスの 要素を 変更して 再構築する簡単な方法ができました。 Object to pathコマンドで再構築できます。簡単ですね。
//
$path:="c:\tmp⇄file.txt"
$o:=Pathto object($path)
// 文書名を変更
$o.name:=$o.name+"_copy"
// 文書をコピーする
COPY DOCUMENT($path;object to path($o))
また、パスを要求するあらゆる4Dコマンドで、返されたオブジェクトを使うことができます。
$o:=Pathto object("C:⇄Resources⇄images⇄.jpg")
$doc:=Selectdocument($o.name+$o.extension;$o.extension; "Save as";ファイル名入力)
Path to object とObject to path コマンドは、非推奨コマンドである_o_Document type と_o_SET DOCUMENT TYPE の呼び出しを置き換えるために使用されるようになりました。
パフォーマンスの向上
4D v16 R6では、ファイルやフォルダの操作にmacOSの最新のシステムAPIをフルに活用しています。私たちは、数千のファイルを持つフォルダに対して、フォルダの内容の一覧表示、ファイルのプロパティのチェック、小さなファイルの読み取りやコピーなど、様々な操作を行うベンチマークテストを実施しました。
その結果、実行時間は一般的に6倍、指定した場所に存在するファイルをリストアップする場合は最大30倍も高速化されることが判明しました。