使用DWScript,我没有看到检查FileCreate函数返回值的明显方法.
示例(不工作)脚本:
function TestFileCreate : Boolean; var F : File; begin F := FileCreate('MyTestFile.txt'); Result := (F = -1); // Not working! Result := (F.Handle = -1); // Not working! end;
procedure TFileCreateFunc.DoEvalAsVariant(const args : TExprBaseListExec; var result : Variant); var h : THandle; i : IdwsFileHandle; begin h:=FileCreate(args.AsFileName[0]); i:=TdwsFileHandle.Create(h); Result:=IUnknown(i); end;
如您所见,在内部调用Delphi CreateFile,失败时结果值为-1.此数值将转换为IdwsFileHandle.
解决方法
@H_403_15@ 它们的目的是在发生故障时提出异常.这已经固定了!扩展,以便现在仅在使用无效文件的情况下触发异常,但两个函数除外:FileIsValid和FileClose.还添加了帮助程序,以便可以像方法一样使用文件函数(即“FileIsValid(f)”也可以写为“f.IsValid”)