4D-jp 4D Japan Technical Support Team

ファイルハンドルの解放


Mac/Linuxでは,開いているファイルをそのまま削除したり移動したりすることができますが,Windowsでは,まずファイルを閉じなければなりません。4D.Fileオブジェクトに対する4D.FileHandleをインスタンス化している場合,4D.FileHandleの参照が代入されたローカル変数にNullを代入する必要があります。Nullを代入してもファイルハンドルが,すぐには解放されず,メソッドを終了するまでファイルを動かせないようであれば,別のローカル変数が同じ4D.FileHandleを参照していることが原因です。

$f:=$file.open()
...
$f2:=$f // 参照を別のローカル変数に代入
...
$f:=Null // この時点でファイルハンドルは解放されない。$f2にNullを代入するかメソッドを終了する必要がある

リンク