メインコンテンツまでスキップ
バージョン: v20 R4 BETA

File

File オブジェクトは File コマンドによって作成されます。 これらのオブジェクトには、(実在しているか否かに関わらず) ディスクファイルへの参照が格納されます。 たとえば、新規ファイルを作成するために File コマンドを実行した場合、有効な File オブジェクトが作成されますが、file.create() 関数を呼び出すまで、ディスク上にはなにも保存されていません。

例題

プロジェクトフォルダーにプリファレンスファイルを作成します:

var $created : Boolean
$created:=File("/PACKAGE/SpecialPrefs/"+Current user+".myPrefs").create()

パス名

File オブジェクトは、filesystemsposix シンタックスを含む、いくつかのパス名をサポートしています。 使用できるパス名についての詳細は パス名 ページを参照ください。

File オブジェクト

.copyTo( destinationFolder : 4D.Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D.File    File オブジェクトを、destinationFolder 引数で指定したフォルダーへとコピーします
.create() : Boolean     File オブジェクトのプロパティに基づいてディスク上にファイルを作成します
.createAlias( destinationFolder : 4D.Folder ; aliasName : Text { ; aliasType : Integer } ) : 4D.File    エイリアス (macOS) またはショートカット (Windows) を作成します
.creationDate : Date    ファイルの作成日を返します
.creationTime : Time    ファイルの作成時刻を返します
.delete()    ファイルを削除します
.exists : Boolean    ディスク上にファイルが存在する場合は true を返します
.extension : Text    ファイル名の拡張子を返します (あれば)
.fullName : Text    拡張子 (あれば) を含めたファイルの完全な名称を返します
.getAppInfo() : Object    .exe.dll.plist ファイルの情報をオブジェクトとして返します
.getContent( ) : 4D.Blobファイルの全コンテンツを格納した 4D.Blob オブジェクトを返します
.getIcon( { size : Integer } ) : Picture    ファイルのアイコンを返します
.getText( { charSetName : Text { ; breakMode : Integer } } ) : Text
.getText( { charSetNum : Integer { ; breakMode : Integer } } ) : Text
    ファイルのコンテンツをテキストとして返します
.hidden : Boolean    ファイルがシステムレベルで "非表示" に設定されていれば true を返します
.isAlias : Boolean    ファイルがエイリアス、ショートカット、シンボリックリンクのいずれかである場合に true を返します
.isFile : Boolean    ファイルに対しては常に true を返します
.isFolder : Boolean    ファイルに対しては常に false を返します。
.isWritable : Boolean    ファイルがディスク上に存在し、書き込み可能な場合に true を返します
.modificationDate : Date    ファイルの最終変更日を返します
.modificationTime : Time    ファイルの最終変更時刻を返します
.moveTo( destinationFolder : 4D.Folder { ; newName : Text } ) : 4D.File    File オブジェクトを destinationFolder が指定する移行先へと移動すると同時に、newName を指定した場合は名称も変更します
.name : Text    拡張子 (あれば) を含まないファイル名を返します
.open( { mode : Text } ) : 4D.FileHandle
.open( { options : Object } ) : 4D.FileHandle
    対象のファイルについて、指定のモード (mode) またはオプション (options) で新規の 4D.FileHandle オブジェクトを作成し、返します
.original : 4D.File
.original : 4D.Folder
    エイリアス、ショートカット、シンボリックリンクファイルのターゲット要素を返します
.parent : 4D.Folder    対象ファイルの親フォルダーオブジェクトを返します
.path : Text    ファイルの POSIXパスを返します
.platformPath : Text    カレントプラットフォームのシンタックスで表現されたファイルのパスを返します
.rename( newName : Text ) : 4D.File    ファイル名を newName に指定した名称に変更し、名称変更後の File オブジェクトを返します
.setAppInfo( info : Object )    info に渡したプロパティを .exe.dll.plist ファイルの情報として書き込みます
.setContent ( content : Blob )     content 引数の BLOB に保存されているデータを使用して、ファイルの全コンテンツを上書きします
.setText ( text : Text {; charSetName : Text { ; breakMode : Integer } } )
.setText ( text : Text {; charSetNum : Integer { ; breakMode : Integer } } )
    text に渡されたテキストをファイルの新しいコンテンツとして書き込みます
.size : Real    ファイルのサイズ (バイト単位) を返します

File

履歴
バージョン内容
v19 R4新しい HTTP Client log file 定数
v17 R5追加

File ( path : Text { ; pathType : Integer }{ ; } ) : 4D.File
File (
fileConstant : Integer { ; } ) : 4D.File

引数タイプ説明
pathText->ファイルパス
fileConstantInteger->4Dファイル定数
pathTypeInteger->fk posix path (デフォルト) または fk platform path
*->ホストデータベースのファイルを返すには * を渡します
戻り値4D.File<-新規ファイルオブジェクト

|

説明

File コマンドは、 4D.File 型の新しいオブジェクトを作成して返します。 このコマンドは 2種類のシンタックスを受け入れます。

File ( path { ; pathType } { ; * })

path には、ファイルパス文字列を渡します。 カスタムの文字列やファイルシステム (例: "/DATA/myfile.txt") を渡すことができます。

File コマンドでは絶対パス名のみがサポートされます。

デフォルトで、4D は POSIXシンタックスで表現されたパスを期待します。 プラットフォームパス名 (Windows または macOS) を使用する場合、pathType 引数を使用してそのことを宣言する必要があります。 以下の定数を使用することができます:

定数説明
fk platform path1プラットフォーム特有のシンタックスで表現されたパス (プラットフォームパス名の場合には必須)
fk posix path0POSIXシンタックスで表現されたパス (デフォルト)

File ( fileConstant { ; * } )

fileConstant には、以下の定数のどれか一つを指定して 4Dビルトインの、またはシステムファイルを渡します:

定数説明
Backup history file19バックアップ履歴ファイル。 バックアップ保存先フォルダに保存されています。
Backup log file13カレントのバックアップのログファイル。 アプリケーションの Logs フォルダーに保存されています。
Backup settings file1プロジェクトの Settings フォルダーにある、デフォルトの backup.4DSettings ファイル (xml 形式)
Backup settings file for data17データフォルダーの Settings フォルダーにある、データファイル用の backup.4DSettings ファイル (xml 形式)
Build application log file14アプリケーションビルダーのカレントログファイル (xml 形式)。 Logs フォルダーに保存されています。
Build application settings file20アプリケーションビルダーのデフォルト設定ファイル ("buildApp.4DSettings")。 プロジェクトの Settings フォルダーに保存されています。
Compacting log file6Compact data file コマンドによって、あるいはメンテナンス&セキュリティセンター (MSC) によって作成された、直近の圧縮のログファイル。 Logs フォルダーに保存されています。
Current backup settings file18アプリケーションが現在使用している backup.4DSettings ファイル。 使用されるのはデフォルトのバックアップ設定ファイル、または、データファイル用のユーザーバックアップ設定ファイルです。
Debug log file12SET DATABASE PARAMETER(Debug log recording) コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。
Diagnostic log file11SET DATABASE PARAMETER(Diagnostic log recording) コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。
Directory file16プロジェクトアプリケーションにおいて、ユーザーとグループ (あれば) の定義が格納された directory.json ファイル。 このファイルは、データベースの user settings フォルダー (デフォルト、プロジェクトに対してグローバル)、または data settings フォルダー (データファイル専用) に保管されます。
HTTP Client log file24HTTP SET OPTION(HTTP client log) コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。
HTTP debug log file9WEB SET OPTION(Web debug log) コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。
HTTP log file8WEB SET OPTION(Web log recording) コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。
IMAP Log file23SET DATABASE PARAMETER(IMAP Log) コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。
Last backup file2任意の場所に格納されている、最終バックアップファイル (名称は: <applicationName>[bkpNum].4BK)
Last journal integration log file22最後のログ統合ログファイル (あれば) の完全なパス名 (復元されたアプリケーションの Logs フォルダー内に保存されます)。 このファイルは、自動修復モードにおいてログファイル統合が発生した時点で作成されます。
Repair log file7メンテナンス&セキュリティセンター (MSC) 内からデータベースに対しておこなわれたデータベース修復のログファイル。 Logs フォルダーに保存されています。
Request log file10SET DATABASE PARAMETER(4D Server log recording) あるいは SET DATABASE PARAMETER(Client log recording) コマンドによって作成された標準のクライアント/サーバーログファイル (Webリクエストは除外)。 サーバー上で実行された場合には、サーバーログが返されます (ログファイルはサーバー上の Logsフォルダーに保存されています)。 クライアントで実行された場合には、クライアントのログが返されます (ログファイルはクライアントのLogsフォルダーに保存されています)。
SMTP log file15SET DATABASE PARAMETER(SMTP Log) コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。
User settings file3設定が有効化されている場合、ストラクチャーファイルと同じ階層にある Preferences フォルダーに格納された、全データファイルの settings.4DSettings ファイル。
User settings file for data4データファイルと同じ階層にある Preferences フォルダーに格納された、カレントデータファイルの settings.4DSettings ファイル。
Verification log file5VERIFY CURRENT DATA FILE および VERIFY DATA FILE コマンドによって、あるいはメンテナンス&セキュリティセンター (MSC) によって作成されたログファイル。 Logs フォルダーに保存されています。

fileConstant 引数で指定したファイルが存在しない場合、null オブジェクトが返されます。 エラーは生成されません。

コマンドがコンポーネントから呼び出されている場合、* 引数を渡してホストデータベースのパスを取得するようにします。 * 引数を省略すると、常に null オブジェクトが返されます。

4D.File.new()

履歴
バージョン内容
v18 R6追加

4D.File.new ( path : Text { ; pathType : Integer }{ ; } ) : 4D.File
4D.File.new (
fileConstant : Integer { ; } ) : 4D.File

説明

4D.File.new() 関数は、 4D.File 型の新しいオブジェクトを作成して返します。 この関数の機能は、File コマンドと同一です。

4D.File.new() よりも、短い File コマンドの使用が推奨されます。

.copyTo()

履歴
バージョン内容
v17 R5追加

.copyTo( destinationFolder : 4D.Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D.File

引数タイプ説明
destinationFolder4D.Folder->宛先フォルダー
newNameText->コピー先フォルダーの名前
overwriteInteger->既存要素を上書きするには fk overwrite を渡します
戻り値4D.File<-コピーされたファイル

|

説明

.copyTo() 関数は、 File オブジェクトを、destinationFolder 引数で指定したフォルダーへとコピーします 。

destinationFolder 引数が指定するフォルダーはディスク上に存在している必要があり、そうでない場合にはエラーが生成されます。

デフォルトで、ファイルは元の名前を維持したままコピーされます。 コピーの際にフォルダー名を変更したい場合、新しい名前を newName に渡します。 新しい名前は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。そうでない場合、エラーが返されます。

destinationFolder 引数が指定するフォルダー内に同じ名前のファイルが既に存在する場合、4D はデフォルトでエラーを生成します。 overwritefk overwrite 定数を渡すことで、既存のフォルダーを無視して上書きすることができます:

定数説明
fk overwrite4既存要素があれば、それを上書きします

戻り値

コピーされた File オブジェクト。

例題

ユーザーのドキュメントフォルダーにあるピクチャーファイルを、アプリケーションフォルダー内にコピーします。

var $source; $copy : Object
$source:=Folder(fk documents folder).file("Pictures/photo.png")
$copy:=$source.copyTo(Folder("/PACKAGE");fk overwrite)

.create()

履歴
バージョン内容
v17 R5追加

ZIPアーカイブには利用できません

.create() : Boolean

引数タイプ説明
戻り値Boolean<-ファイルが正常に作成された場合に true、それ以外の場合は false

|

説明

.create() 関数は、 File オブジェクトのプロパティに基づいてディスク上にファイルを作成します。

必要であれば、 関数は platformPath あるいは path プロパティの詳細に基づいてフォルダー階層を作成します。 ファイルがディスク上にすでに存在する場合、関数は何もせず、false を返します (エラーは返されません)。

戻り値

  • ファイルが正常に作成された場合には true
  • すでに同じ名前のファイルが存在する、あるいはエラーが発生した場合には false

例題

データベースフォルダー内にプリファレンスファイルを作成します:

 var $created : Boolean
$created:=File("/PACKAGE/SpecialPrefs/"+Current user+".myPrefs").create()

.createAlias()

履歴
バージョン内容
v17 R5追加

.createAlias( destinationFolder : 4D.Folder ; aliasName : Text { ; aliasType : Integer } ) : 4D.File

引数タイプ説明
destinationFolder4D.Folder->エイリアスまたはショートカットの作成先フォルダー
aliasNameText->エイリアスまたはショートカットの名称
aliasTypeInteger->エイリアスリンクのタイプ
戻り値4D.File<-エイリアスまたはショートカットのファイル参照

|

説明

.createAlias() 関数は、 エイリアス (macOS) またはショートカット (Windows) を作成します 。これらは、destinationFolder オブジェクトが指定するフォルダー内に、aliasName の名称で作成されます。

aliasName には、作成するエイリアスまたはショートカットの名前を渡します。

macOS 上では、この関数はデフォルトで標準エイリアスを作成します。 aliasType 引数を渡すことで、シンボリックリンクを作成することもできます。 以下の定数を使用することができます:

定数説明
fk alias link0エイリアスリンク (デフォルト)
fk symbolic link1シンボリックリンク (macOSのみ)

Windows 上では、常にショートカット (.lnk ファイル) が作成されます (aliasType 引数は無視されます)。

返されるオブジェクト

isAlias プロパティが true に設定された 4D.File オブジェクトを返します。

例題

データベースフォルダー内のファイルへのエイリアスを作成します:

 $myFile:=Folder(fk documents folder).file("Archives/ReadMe.txt")
$aliasFile:=$myFile.createAlias(File("/PACKAGE");"ReadMe")

.creationDate

履歴
バージョン内容
v17 R5追加

.creationDate : Date

説明

.creationDate プロパティは、 ファイルの作成日を返します。

このプロパティは 読み取り専用 です。

.creationTime

履歴
バージョン内容
v17 R5追加

.creationTime : Time

説明

.creationTime プロパティは、 ファイルの作成時刻を返します (00:00 からの経過秒数の形式)。

このプロパティは 読み取り専用 です。

.delete()

履歴
バージョン内容
v17 R5追加

.delete()

引数タイプ説明
このコマンドは引数を必要としません

|

説明

.delete() 関数は、 ファイルを削除します。

ファイルがディスク上に存在しない場合、関数は何もしません (エラーは生成されません)。

ファイルが現在開かれている場合、結果は OS に依存します:

  • Windows上では、エラーが生成されます。
  • macOS上では、エラーは生成されず、ファイルが削除されます。
caution

.delete() はディスク上の任意のファイルを削除できます。 これには、他のアプリケーションで作成されたドキュメントや、アプリケーションそのものも対象になります。 そのため、.delete() は特に十分な注意を払って使用してください。 ファイルの削除は恒久的な操作であり取り消しできません。

例題

データベースフォルダー内の特定のファイルを削除します:

 $tempo:=File("/PACKAGE/SpecialPrefs/"+Current user+".prefs")
If($tempo.exists)
$tempo.delete()
ALERT("ユーザーのプリファレンスファイルが削除されました。")
End if

.exists

履歴
バージョン内容
v17 R5追加

.exists : Boolean

説明

.exists プロパティは、 ディスク上にファイルが存在する場合は true を返します(それ以外の場合は false)。

このプロパティは 読み取り専用 です。

.extension

履歴
バージョン内容
v17 R5追加

.extension : Text

説明

.extension プロパティは、 ファイル名の拡張子を返します (あれば)。 拡張子は必ず"." で始まります。 ファイル名が拡張子を持たない場合には、このプロパティは空の文字列を返します。

このプロパティは 読み取り専用 です。

.fullName

履歴
バージョン内容
v17 R5追加

.fullName : Text

説明

.fullName プロパティは、 拡張子 (あれば) を含めたファイルの完全な名称を返します。

このプロパティは 読み取り専用 です。

.getAppInfo()

履歴
バージョン内容
v19追加

.getAppInfo() : Object

引数タイプ説明
戻り値Object<-.exe/.dll のバージョンリソースや .plist ファイルの中身

|

説明

.getAppInfo() 関数は、 .exe.dll.plist ファイルの情報をオブジェクトとして返します。

この関数は、既存の .exe、.dll、あるいは .plist ファイルと使う必要があります。 ファイルがディスク上に存在しない、または、有効な .exe や .dll、.plist ファイルでない場合、この関数は空のオブジェクトを返します (エラーは生成されません)。

この関数は xml形式の .plist ファイル (テキスト) のみをサポートしています。 バイナリ形式の .plist ファイルを対象に使用した場合、エラーが返されます。

.exe または .dll ファイルの場合に返されるオブジェクト

.exe および .dll ファイルの読み取りは Windows上でのみ可能です。

プロパティ値はすべてテキストです。

プロパティタイプ
InternalNameText
ProductNameText
CompanyNameText
LegalCopyrightText
ProductVersionText
FileDescriptionText
FileVersionText
OriginalFilenameText

.plist ファイルの場合に返されるオブジェクト

xml ファイルの中身は解析され、オブジェクトのプロパティとしてキーが返されます。 キーの型 (テキスト、ブール、数値) は維持されます。 .plist dict は JSON オブジェクトとして返されます。 また、.plist array は JSON 配列として返されます。

例題

 // アプリケーションの .exe ファイルの著作権情報を表示します (Windows)
var $exeFile : 4D.File
var $info : Object
$exeFile:=File(Application file; fk platform path)
$info:=$exeFile.getAppInfo()
ALERT($info.LegalCopyright)

// info.plistの著作権情報を表示します (Windows および macOS)
var $infoPlistFile : 4D.File
var $info : Object
$infoPlistFile:=File("/RESOURCES/info.plist")
$info:=$infoPlistFile.getAppInfo()
ALERT($info.Copyright)

参照

.setAppInfo()

.getContent()

履歴
バージョン内容
v19 R24D.Blob を返します
v17 R5追加

.getContent( ) : 4D.Blob

引数タイプ説明
戻り値4D.Blob<-ファイルのコンテンツ

|

説明

.getContent() 関数は、 ファイルの全コンテンツを格納した 4D.Blob オブジェクトを返します。 BLOB についての詳細は、BLOB の章を参照してください。

戻り値

4D.Blob オブジェクト。

例題

ドキュメントの中身を BLOB フィールドに保存します:

 var $vPath : Text
$vPath:=Select document("";"*";"Select a document";0)
If(OK=1) // キュメントが選択されていれば
[aTable]aBlobField:=File($vPath;fk platform path).getContent()
End if

.getIcon()

履歴
バージョン内容
v17 R5追加

.getIcon( { size : Integer } ) : Picture

引数タイプ説明
sizeInteger->取得するピクチャーの一辺の長さ (ピクセル単位)
戻り値Picture<-アイコン

|

説明

.getIcon() 関数は、 ファイルのアイコンを返します。

任意の size 引数を渡すと、返されるアイコンのサイズをピクセル単位で指定することができます。 この値は、実際にはアイコンを格納している正方形の一辺の長さを表しています。 アイコンは通常、32x32ピクセル ("大きいアイコン") または 16x16ピクセル ("小さいアイコン") で定義されています。 この引数に 0 を渡すか省略した場合、"大きいアイコン" が返されます。

ファイルがディスク上に存在しない場合、デフォルトの空のアイコンが返されます。

戻り値

ファイルアイコンの ピクチャー

.getText()

履歴
バージョン内容
v17 R5追加

.getText( { charSetName : Text { ; breakMode : Integer } } ) : Text
.getText( { charSetNum : Integer { ; breakMode : Integer } } ) : Text

引数タイプ説明
charSetNameText->文字セットの名前
charSetNumInteger->文字セットの番号
breakModeInteger->改行の処理モード
戻り値Text<-ドキュメントから取得したテキスト

|

説明

.getText() 関数は、 ファイルのコンテンツをテキストとして返します 。

任意で、コンテンツの読み取りに使用する文字セットを渡します。 これには、次の二つの方法があります:

  • charSetName に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。
  • charSetNum に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。

4D によってサポートされている文字セットの一覧については、CONVERT FROM TEXT コマンドを参照ください。

ドキュメントにバイトオーダーマーク (BOM) が含まれている場合、4D は charSetName または charSetNum 引数で設定されている文字セットではなく、BOM で指定されたものを使用します (結果として引数は無視されます)。 ドキュメントに BOM が含まれておらず、また charSetName および charSetNum 引数が渡されなかった場合、4D はデフォルトで "UTF-8" を文字セットとして使用します。

breakMode には、ドキュメントの改行文字に対しておこなう処理を指定する倍長整数を渡します。 "System Documents" テーマの、以下の定数を使用することができます:

定数説明
Document unchanged0何も処理をしません。
Document with native format1(デフォルト) 改行は OS のネイティブフォーマットに変換されます。macOS では CR (キャリッジリターン) に、Windows では CRLF (キャリッジリターン+ラインフィード) に変換されます。
Document with CRLF2改行は Windowsフォーマット (CRLF、キャリッジリターン+ラインフィード) へと変換されます。
Document with CR3改行は macOSフォーマット (CR、キャリッジリターン) へと変換されます。
Document with LF4改行は Unixフォーマット (LF、ラインフィード) へと変換されます。

breakMode 引数を渡さなかった場合はデフォルトで、改行はネイティブモード (1) で処理されます。

戻り値

ファイルのテキスト。

例題

以下のテキストを持つドキュメントがある場合を考えます (フィールドはタブ区切りです):

id name price vat
3 thé 1.06€ 19.6
2 café 1.05€ 19.6

以下のコードを実行すると:

 $myFile:=Folder(fk documents folder).file("Billing.txt") // デフォルトでUTF-8
$txt:=$myFile.getText()

以下の結果が $txt に得られます:

"id\tname\tprice\tvat\r\n3\tthé\t1.06€\t19.6\r\n2\tcafé\t1.05€\t19.6"

このとき、区切り文字は \t (タブ) で、改行コードは \r\n (CRLF) です。

以下は、同じファイルで改行コードが異なる例です:

 $txt:=$myFile.getText("UTF-8"; Document with LF)

この場合、$txt の値は次の通りです:

"id\tname\tprice\tvat\n3\tthé\t1.06€\t19.6\n2\tcafé\t1.05€\t19.6"

このとき、改行コードは \n (LF) です。

.hidden

履歴
バージョン内容
v17 R5追加

.hidden : Boolean

説明

.hidden プロパティは、 ファイルがシステムレベルで "非表示" に設定されていれば true を返します(それ以外の場合は false)。

読み書き可能 プロパティです。

.isAlias

履歴
バージョン内容
v17 R5追加

.isAlias : Boolean

説明

.isAlias プロパティは、 ファイルがエイリアス、ショートカット、シンボリックリンクのいずれかである場合に true を返します(それ以外の場合は false)。

このプロパティは 読み取り専用 です。

.isFile

履歴
バージョン内容
v17 R5追加

.isFile : Boolean

説明

.isFile プロパティは、 ファイルに対しては常に true を返します。

このプロパティは 読み取り専用 です。

.isFolder

履歴
バージョン内容
v17 R5追加

.isFolder : Boolean

説明

.isFolder プロパティは、 ファイルに対しては常に false を返します。。

このプロパティは 読み取り専用 です。

.isWritable

履歴
バージョン内容
v17 R5追加

.isWritable : Boolean

説明

.isWritable プロパティは、 ファイルがディスク上に存在し、書き込み可能な場合に true を返します。

このプロパティは 4Dアプリケーションがディスクに書き込めるかどうか (アクセス権限) をチェックし、ファイルの writable (書き込み可能) 属性のみ依存するわけではありません。

このプロパティは 読み取り専用 です。

例題

 $myFile:=File("C:\\Documents\\Archives\\ReadMe.txt";fk platform path)
If($myFile.isWritable)
$myNewFile:=$myFile.setText("Added text")
End if

.modificationDate

履歴
バージョン内容
v17 R5追加

.modificationDate : Date

説明

.modificationDate プロパティは、 ファイルの最終変更日を返します。

このプロパティは 読み取り専用 です。

.modificationTime

履歴
バージョン内容
v17 R5追加

.modificationTime : Time

説明

.modificationTime プロパティは、 ファイルの最終変更時刻を返します (00:00 からの経過秒数の形式)。

このプロパティは 読み取り専用 です。

.moveTo()

履歴
バージョン内容
v17 R5追加

.moveTo( destinationFolder : 4D.Folder { ; newName : Text } ) : 4D.File

引数タイプ説明
destinationFolder4D.Folder->宛先フォルダー
newNameText->移動先でのファイルの完全な名称
戻り値4D.File<-移動したファイル

|

説明

.moveTo() 関数は、 File オブジェクトを destinationFolder が指定する移行先へと移動すると同時に、newName を指定した場合は名称も変更します。

destinationFolder 引数が指定するフォルダーはディスク上に存在している必要があり、そうでない場合にはエラーが生成されます。

デフォルトでは、移動したファイルは元の名前を維持します。 移動の際にファイル名を変更したい場合、新しい完全な名前を newName に渡します。 新しい名前は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。そうでない場合、エラーが返されます。

返されるオブジェクト

移動後の File オブジェクト。

例題

$DocFolder:=Folder(fk documents folder)
$myFile:=$DocFolder.file("Current/Infos.txt")
$myFile.moveTo($DocFolder.folder("Archives");"Infos_old.txt")

.name

履歴
バージョン内容
v17 R5追加

.name : Text

説明

.name プロパティは、 拡張子 (あれば) を含まないファイル名を返します。

このプロパティは 読み取り専用 です。

.open()

履歴
バージョン内容
v19 R7追加

.open( { mode : Text } ) : 4D.FileHandle
.open( { options : Object } ) : 4D.FileHandle

引数タイプ説明
modeText->開くモード: "read", "write", "append"
optionsObject->開くオプション
戻り値4D.FileHandle<-新規の FileHandle オブジェクト

|

説明

.open() 関数は、 対象のファイルについて、指定のモード (mode) またはオプション (options) で新規の 4D.FileHandle オブジェクトを作成し、返します。 4D.FileHandle クラスの関数とプロパティを使用して、ファイルにコンテンツを書き込んだり読み取ったり、追加したりすることができます。

mode (text) 引数として、どのモードで FileHandle を開くかを指定します。

mode説明
"read"(デフォルト) ファイルから値を読み取るための FileHandle を作成します。 ディスク上にファイルが存在しない場合は、エラーが返されます。 "read" モードの FileHandle は、同じ File オブジェクトに対していくつでも開くことができます。
"write"ファイルに値を書き込むための FileHandle を作成します (書き込みはファイルの先頭から)。 ディスク上にファイルが存在しない場合は、作成されます。 "write" モードの FileHandle は、同じ File オブジェクトに対して 1つのみ開くことができます。
"append"ファイルに値を書き込むための FileHandle を作成します (書き込みはファイルの最後から)。 ディスク上にファイルが存在しない場合は、作成されます。 "append" モードの FileHandle は、同じ File オブジェクトに対して 1つのみ開くことができます。

mode の値は、文字の大小を区別します。

option (object) 引数を使って、以下のプロパティを通じて FileHandle にさらなるオプションを渡すことができます (これらのプロパティはその後、開かれた FileHandle オブジェクト から取得できます)。

optionsタイプ説明デフォルト
.modeText開くモード (上記の mode 参照)"read"
.charsetTextファイルの読み取りや書き込みに使用される文字セット。 セットの標準名を使用します (たとえば、"ISO-8859-1" や "UTF-8")"UTF-8"
.breakModeReadText または Numberファイルの読み取り時に使用される改行の処理モード (下記参照)"native" または 1
.breakModeWriteText または Numberファイルの書き込み時に使用される改行の処理モード (下記参照)"native" または 1

この関数は、元の改行文字をすべて置き換えます。 デフォルトではネイティブの区切り文字が使われますが、別の区切り文字を定義することも可能です。 .breakModeRead.breakModeWrite は、改行文字に適用する処理を指定します。 以下のいずれかの値を使用できます (テキストまたは数値):

改行モードの値 (テキスト)改行モードの値 (数値/定数)説明
"native"1 (Document with native format)(デフォルト) 改行は OS のネイティブフォーマットに変換されます。 macOS では LF (ラインフィード) に、Windows では CRLF (キャリッジリターン+ラインフィード) に変換されます。
"crlf"2 (Document with CRLF)改行は Windows のデフォルトフォーマットである CRLF (キャリッジリターン+ラインフィード) へと変換されます。
"cr"3 (Document with CR)改行はクラシック Mac OS のデフォルトフォーマットである CR (キャリッジリターン) へと変換されます。
"lf"4 (Document with LF)改行は Unix および macOS のデフォルトフォーマットである LF (ラインフィード) へと変換されます。

break mode as text の値は、文字の大小を区別します。

例題

"ReadMe.txt" ファイルを読み取るための FileHandle を作成します:

var $f : 4D.File
var $fhandle : 4D.FileHandle

$f:=File("C:\\Documents\\Archives\\ReadMe.txt";fk platform path)
$fhandle:=$f.open("read")

.original

履歴
バージョン内容
v17 R5追加

.original : 4D.File
.original : 4D.Folder

説明

.original プロパティは、 エイリアス、ショートカット、シンボリックリンクファイルのターゲット要素を返します。 ターゲット要素は以下のいずれかです:

  • File オブジェクト
  • Folder オブジェクト

エイリアスでないファイルについては、プロパティは同じファイルオブジェクトをファイルとして返します。

このプロパティは 読み取り専用 です。

.parent

履歴
バージョン内容
v17 R5追加

.parent : 4D.Folder

説明

.parent プロパティは、 対象ファイルの親フォルダーオブジェクトを返します。 パスがシステムパスを表す場合 (例: "/DATA/")、システムパスが返されます。

このプロパティは 読み取り専用 です。

.path

履歴
バージョン内容
v17 R5追加

.path : Text

説明

.path プロパティは、 ファイルの POSIXパスを返します。 パスがファイルシステムを表す場合 (例: "/DATA/")、ファイルシステムが返されます。

このプロパティは 読み取り専用 です。

.platformPath

履歴
バージョン内容
v17 R5追加

.platformPath : Text

説明

.platformPath プロパティは、 カレントプラットフォームのシンタックスで表現されたファイルのパスを返します。

このプロパティは 読み取り専用 です。

.rename()

履歴
バージョン内容
v17 R5追加

.rename( newName : Text ) : 4D.File

引数タイプ説明
newNameText->ファイルの新しい完全な名称
戻り値4D.File<-名称変更されたファイル

|

説明

.rename() 関数は、 ファイル名を newName に指定した名称に変更し、名称変更後の File オブジェクトを返します。

newName 引数は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。 同じ名前のファイルがすでに存在する場合には、エラーが返されます。

この関数はファイルの完全な名前を編集することに留意が必要です。 つまり、newName に拡張子を渡さなかった場合、新しいファイル名には拡張子がありません。

返されるオブジェクト

名称変更された File オブジェクト。

例題

"ReadMe.txt" ファイルを "ReadMe_new.txt" というファイルに名称変更します:

 $toRename:=File("C:\\Documents\\Archives\\ReadMe.txt";fk platform path)
$newName:=$toRename.rename($toRename.name+"_new"+$toRename.extension)

.setAppInfo()

履歴
バージョン内容
v20WinIcon をサポート
v19追加

.setAppInfo( info : Object )

引数タイプ説明
infoObject->.exe/.dll のバージョンリソースや .plist ファイルに書き込むプロパティ

|

説明

.setAppInfo() 関数は、 info に渡したプロパティを .exe.dll.plist ファイルの情報として書き込みます。

この関数は、既存の .exe、.dll、あるいは .plist ファイルと使う必要があります。 ファイルがディスク上に存在しない、または、有効な .exe や .dll、.plist ファイルでない場合、この関数は何もしません (エラーは生成されません)。

この関数は xml形式の .plist ファイル (テキスト) のみをサポートしています。 バイナリ形式の .plist ファイルを対象に使用した場合、エラーが返されます。

.exe または .dll ファイル用の info オブジェクト

.exe および .dll ファイル情報の書き込みは Windows上でのみ可能です。

info オブジェクトに設定された各プロパティは .exe または .dll ファイルのバージョンリソースに書き込まれます。 以下のプロパティが使用できます (それ以外のプロパティは無視されます):

プロパティタイプ説明
InternalNameText
ProductNameText
CompanyNameText
LegalCopyrightText
ProductVersionText
FileDescriptionText
FileVersionText
OriginalFilenameText
WinIconText.icoファイルの Posixパス。 このプロパティは、4D が生成した実行ファイルにのみ適用されます。

WinIcon を除くすべてのプロパティにおいて、値として null または空テキストを渡すと、空の文字列がプロパティに書き込まれます。 テキストでない型の値を渡した場合には、文字列に変換されます。

WinIcon プロパティにおいては、アイコンファイルが存在しないか、フォーマットが正しくない場合、エラーが発生します。

.plist ファイル用の info オブジェクト

info オブジェクトに設定された各プロパティは .plist ファイルにキーとして書き込まれます。 あらゆるキーの名称が受け入れられます。 値の型は可能な限り維持されます。

info に設定されたキーが .plist ファイル内ですでに定義されている場合は、その値が更新され、元の型が維持されます。 .plist ファイルに既存のそのほかのキーはそのまま維持されます。

日付型の値を定義するには、Xcode plist エディターのようにミリ秒を除いた ISO UTC 形式の JSONタイムスタンプ文字列 (例: "2003-02-01T01:02:03Z") を使用します。

例題

  // .exe ファイルの著作権、バージョン、およびアイコン情報を設定します (Windows)
var $exeFile; $iconFile : 4D.File
var $info : Object
$exeFile:=File(Application file; fk platform path)
$iconFile:=File("/RESOURCES/myApp.ico")
$info:=New object
$info.LegalCopyright:="Copyright 4D 2023"
$info.ProductVersion:="1.0.0"
$info.WinIcon:=$iconFile.path
$exeFile.setAppInfo($info)
  // info.plist ファイルのキーをいくつか設定します (すべてのプラットフォーム)
var $infoPlistFile : 4D.File
var $info : Object
$infoPlistFile:=File("/RESOURCES/info.plist")
$info:=New object
$info.Copyright:="Copyright 4D 2023" // テキスト
$info.ProductVersion:=12 // 整数
$info.ShipmentDate:="2023-04-22T06:00:00Z" // タイムスタンプ
$info.CFBundleIconFile:="myApp.icns" // macOS 用
$infoPlistFile.setAppInfo($info)

参照

.getAppInfo()

.setContent()

履歴
バージョン内容
v17 R5追加

.setContent ( content : Blob )

引数タイプ説明
contentBLOB->ファイルの新しいコンテンツ

|

説明

.setContent( ) 関数は、 content 引数の BLOB に保存されているデータを使用して、ファイルの全コンテンツを上書きします。 BLOB についての詳細は、BLOB の章を参照してください。

例題

 $myFile:=Folder(fk documents folder).file("Archives/data.txt")
$myFile.setContent([aTable]aBlobField)

.setText()

履歴
バージョン内容
v19 R3新規プロジェクトのデフォルト: BOMなし、(macOS の場合) EOL として LF を使用
v17 R5追加

.setText ( text : Text {; charSetName : Text { ; breakMode : Integer } } )
.setText ( text : Text {; charSetNum : Integer { ; breakMode : Integer } } )

引数タイプ説明
textText->ファイルに保存するテキスト
charSetNameText->文字セットの名前
charSetNumInteger->文字セットの番号
breakModeInteger->改行の処理モード

|

説明

.setText() 関数は、 text に渡されたテキストをファイルの新しいコンテンツとして書き込みます。

File オブジェクトで参照されているファイルがディスク上に存在しない場合、このメソッドがそのファイルを作成します。 ディスク上にファイルが存在する場合、ファイルが開かれている場合を除き、以前のコンテンツは消去されます。 ファイルが開かれている場合はコンテンツはロックされ、エラーが生成されます。

text には、ファイルに書き込むテキストを渡します。 テキストリテラル ("my text" など) のほか、4Dテキストフィールドや変数も渡せます。

任意で、コンテンツの書き込みに使用する文字セットを渡します。 これには、次の二つの方法があります:

  • charSetName に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。
  • charSetNum に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。

4D によってサポートされている文字セットの一覧については、CONVERT FROM TEXT コマンドを参照ください。

文字セットにバイトオーダーマーク (BOM) が存在し、かつその文字セットに "-no-bom" 接尾辞 (例: "UTF-8-no-bom") が含まれていない場合、4D は BOM をファイルに挿入します。 文字セットを指定しない場合、 4D はデフォルトで "UTF-8" の文字セットを BOMなしで使用します。

breakMode には、ファイルを保存する前に改行文字に対しておこなう処理を指定する倍長整数を渡します。 System Documents テーマ内にある、以下の定数を使用することができます:

定数説明
Document unchanged0何も処理をしません。
Document with native format1(デフォルト) 改行は OS のネイティブフォーマットに変換されます。 macOS では LF (ラインフィード) に、Windows では CRLF (キャリッジリターン+ラインフィード) に変換されます。
Document with CRLF2改行は Windows のデフォルトフォーマットである CRLF (キャリッジリターン+ラインフィード) へと変換されます。
Document with CR3改行はクラシック Mac OS のデフォルトフォーマットである CR (キャリッジリターン) へと変換されます。
Document with LF4改行は Unix および macOS のデフォルトフォーマットである LF (ラインフィード) へと変換されます。

breakMode 引数を渡さなかった場合はデフォルトで、改行はネイティブモード (1) で処理されます。

互換性に関する注記: EOL (改行コード) および BOM の管理については、互換性オプションが利用可能です。 doc.4d.com の互換性ページ を参照ください。

例題

$myFile:=File("C:\\Documents\\Hello.txt";fk platform path)
$myFile.setText("Hello world")

.size

履歴
バージョン内容
v17 R5追加

.size : Real

説明

.size プロパティは、 ファイルのサイズ (バイト単位) を返します。 ファイルがディスク上に存在しない場合、サイズは 0 になります。

このプロパティは 読み取り専用 です。