†Sibylのお部屋†

ファイル操作

作成開始日 2022.03.03
最終更新日 2022.03.03

ファイルの新規作成

ファイル作成関数には「FileCreate」と「FileCreateIfNew」の2種類がある。前者は同名ファイルが存在した場合、上書きをしてしまうようだ。後者は、同名ファイルが存在しない場合にのみ、新規ファイルを作成する。後者を推奨。ただし、後者は作成ファイル名以外にオプション(モード)指定が必要。で、このモードがイマイチ意味がわからん…

モード指定定数には以下のようなものがある;


fmOpenRead 読み出し専用ファイルとして開く
fmOpenWrite 書き込み専用ファイルとして開く
fmOpenReadWrite 読み書き可能ファイルとして開く

fmShareCompat コンパチブルモード(制限なし)
fmShareDenyRead 他プロセスからの読み出しを拒否する
fmShareDenyWrite 他プロセスからの書き込みを拒否する
fmShareDenyNone 他プロセスからのアクセスを全て許可する(デフォルト)
fmShareExclusive 他プロセスからのアクセスを全て拒否する

留意すべきは、作成直後はファイルがオープンされている状態のため、アクセス可能な設定であっても、削除ができない点。単に空ファイルを作成するだけなら、作成直後にファイルをクローズする必要がある。それにはファイル・ハンドル(LongInt型)が必要。

Var
  hdlFile: LongIng;
Begin
  hdlFile:=FileCreateIfNew('e:\work\newfile.txt', fmShareDenyNone);
  CloseFile(hdlFile);

ディレクトリの作成

API関数に「DosCreateDir」があるが、通常は「MkDir」命令で充分だろう。


【Sibylのお部屋目次】 【ホーム】