パス名
File および Folder の関数、プロパティ、コマンドにより、ファイルやフォルダーをオブジェクトとして扱うことができます。 これにより、ファイルやフォルダーの管理を強力かつ柔軟におこなえます。 たとえば、カレントユーザーのドキュメントフォルダーに新しいファイルを作成する場合、次のように書くことができます:
$ok:=Folder(fk documents folder).file("Archives/John4D.prefs").create()
さらに、ファイルおよびフォルダーオブジェクトは、アプリケーションの主なフォルダーへのコンテキストパスを提供する filesystem
をサポートしています。
ファイルシステムパス名
4D は、macOS および Windows上で様々な場所にある特定の 4Dフォルダーを指定するいくつかの "filesystem" パス名を受け取ります。 ファイルシステムパス名の使用は、主に二つの理由から有用です:
- 独立性: OS の違いやパスの心配なく、ソリューションを一つの場所から他の場所へと移せるようになります。
- 安全性: コードにより、ディスク上のファイルシステムのルートより上の階層にある要素へアクセスすることはできません (サンドボックス化)。
以下のファイルシステムパス名がサポートされています:
filesystem | 指定先 |
---|---|
"/DATA" | カレントデータフォルダー |
"/LOGS" | Logs フォルダー |
"/PACKAGE" | プロジェクトのルートフォルダー (拡張子 4dbase の有無に関わらず) |
"/PROJECT" | Project フォルダー |
"/RESOURCES" | カレントプロジェクトの Resources フォルダー |
"/SOURCES" | カレントプロジェクトの Sources フォルダー |
POSIX シンタックス
POSIX シンタックスはすべてのプラットフォームでサポートされています。 もっとも柔軟性に優れるため、POSIX シンタックスの使用が推奨されています。 POSIX シンタックスはデフォルトで使用されています (file.path および folder.path プロパティによって返されます)。
このシンタックスでは:
- フォルダーは "/" で区切られます。
- 絶対パス名は "/" で始まります。
- 相対パスにおいて 1階層上に移動するには、パス名の前に "../" を使用します (セキュリティ上の理由から、filesystem から上へは移動できません)。
POSIX シンタックスでは一般的に、File
および Folder
コマンドに filesystem
パス名を使用します。例:
$pathFile:=File("/DATA/Archives/file 2.txt")
$pathFolder:=Folder("/RESOURCES/Pictures")
プラットフォーム特有のシンタックス
プラットフォーム特有のシンタックスは、コマンドが実行される OS に依存します。 このシンタックスを使用して File または Folder オブジェクトを作成するとき、fk platform path
定数を引数として使用してそれを宣言する必要がある点に注意してください。
Windows
以下のパターンがサポートされています:
- フォルダーは "" で区切られます。
- パスは 2番目と 3番目の文字にそれぞれ ":" と "" を含みます。
- パスは "\" で始まります。
Folder
を使用した例:
$ok:=Folder("C:\\Monday";fk platform path).create()
$ok:=Folder("\\\\svr-internal\\tempo";fk platform path).create()