文件不存在时程序突然关闭(IOResult文件处理)

时间:2019-08-07 02:20:28

标签: pascal

我使用IOResult来验证文件的存在,当文件存在时,一切正常,但是当文件不存在时,程序突然关闭。

我尝试尝试-除了捕获异常外,问题仍然存在,也许我没有正确使用异常?但不确定如何使用它。

function verifyExistence(var input:text):boolean; 
var x:word; //IOResult
var r:boolean;
    begin
        try
            {$I-}
            reset(input);
            {$I+}
            x:=IOResult;    
        except on E: EInOutError do begin
            r:=false;
            exit;
        end;
        end;

            if (x <> 0) then
                r:=false //File does not exist
            else
                r:=true; //File exists
        close(input);
        verifyExistence:=r;
    end;
procedure fopen(var path:string);
var exists:boolean;
begin
    writeln('Specify file path. Example: C:\Users\Frank\Desktop\example.txt');
    readln(path);
    assign(input,path);
    exists:=verifyExistence(input);
        if exists then begin
            //writeln('File exists');
        end
        else begin
            writeln('File does not exist');
        end;
end;

1 个答案:

答案 0 :(得分:1)

这是我解决问题的方法:

我删除了verifyExistence函数,只是像这样打开了fopen:

procedure fopen(var path:string);
begin
    writeln('Specify file path. Example: C:\Users\Frank\Desktop\example.txt');
    readln(path);
    if not FileExists(path) then begin
        writeln('File does not exist'); 
        exit; 
    end;
    assign(input,path);
end;

感谢您的帮助