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

Document クラス

説明

.creationDate

履歴
リリース内容
17 R5追加

.creationDate : Date

説明

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

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

.creationTime

履歴
リリース内容
17 R5追加

.creationTime : Time

説明

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

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

.exists

履歴
リリース内容
17 R5追加

.exists : Boolean

説明

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

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

.extension

履歴
リリース内容
17 R5追加

.extension : Text

説明

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

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

.fullName

履歴
リリース内容
17 R5追加

.fullName : Text

説明

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

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

.hidden

履歴
リリース内容
17 R5追加

.hidden : Boolean

説明

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

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

.isAlias

履歴
リリース内容
17 R5追加

.isAlias : Boolean

説明

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

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

.isFile

履歴
リリース内容
17 R5追加

.isFile : Boolean

説明

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

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

.isFolder

履歴
リリース内容
17 R5追加

.isFolder : Boolean

説明

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

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

.isWritable

履歴
リリース内容
17 R5追加

.isWritable : Boolean

説明

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

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

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

Example

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

.modificationDate

履歴
リリース内容
17 R5追加

.modificationDate : Date

説明

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

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

.modificationTime

履歴
リリース内容
17 R5追加

.modificationTime : Time

説明

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

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

.name

履歴
リリース内容
17 R5追加

.name : Text

説明

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

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

.original

履歴
リリース内容
17 R5追加

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

説明

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

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

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

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

.parent

履歴
リリース内容
17 R5追加

.parent : 4D.Folder

説明

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

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

.path

履歴
リリース内容
17 R5追加

.path : Text

説明

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

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

.platformPath

履歴
リリース内容
17 R5追加

.platformPath : Text

説明

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

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

.size

履歴
リリース内容
17 R5追加

.size : Real

説明

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

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

.copyTo()

履歴
リリース内容
17 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)

.getContent()

履歴
リリース内容
19 R24D.Blob を返します
17 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()

履歴
リリース内容
17 R5追加

.getIcon( { size : Integer } ) : Picture

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

説明

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

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

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

戻り値

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

.getText()

履歴
リリース内容
17 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) です。