PROLOG-检查文件是否存在

PROLOG-检查文件是否存在,prolog,exists,Prolog,Exists,在我的程序中,我想首先检查某个文件是否存在。如果是,我想读它,如果不是,我想创建它(使用tell)并使用它。我无法让Prolog检查文件是否存在 我试过了 exists_file('testfile.pl') exists('testfile.pl') access_file('testfile.pl',exists) 对于这三种情况,我得到的信息是“存在错误……不存在” 这里怎么了? 我想要的是一个返回true或false的谓词,这取决于文件是否存在 谢谢您使用的是什么prolog版本exi

在我的程序中,我想首先检查某个文件是否存在。如果是,我想读它,如果不是,我想创建它(使用tell)并使用它。我无法让Prolog检查文件是否存在

我试过了

exists_file('testfile.pl')
exists('testfile.pl')
access_file('testfile.pl',exists)
对于这三种情况,我得到的信息是“存在错误……不存在”

这里怎么了? 我想要的是一个返回true或false的谓词,这取决于文件是否存在


谢谢

您使用的是什么prolog版本
exists\u file/1
在SWI-Prolog中为我工作。tell&tell真的很老套,甚至可能被弃用。使用open&close,而不是Prolog标准文件系统API。不同的系统提供不同的内置谓词或库来检查文件是否存在。请参阅Prolog系统文档。您还可以找到不同的系统是如何做到这一点的,例如,在我使用的是SICStus Prolog 4.4.1。我还是不明白为什么它不起作用。当我键入
exists\u file('testfile.pl')
时,我得到“user:exists\u file/1中存在错误。procedure user:exists\u file/1不存在。(它与“user:”部分无关。)在SICStus中有一个谓词
file\u exists
(请参见4.3.1中的内容,但谓词可能在4.4.1中仍然可用)。