查找文件的根目录并阅读Prolog

时间:2013-04-23 17:09:56

标签: prolog

我需要在prolog中将文件读入数据库,代码如下:

open('C:/Files/text.txt', read, S)

它读得很完美,但我必须将我的pl用于另一台计算机,目录可能不同 例如,如果用

更改打开的代码
open('text.txt',read,S)

即使my pl文件和txt在根目录(C:/Files/text.txt)中,也无法读取。

是否有任何更正来读取txt。无论根pl和txt在哪里,只是同一个文件夹是重要的?

1 个答案:

答案 0 :(得分:0)

您可以使用谓词absolute_file_name / [2,3]来查看 如何解析相对文件名。例如,我得到:

?- absolute_file_name('text.txt', X, [mode(read)]).
X = 'c:/users/user/documents/prolog/text.txt'.

通常工作目录用于解析亲戚 顶级文件名。您可以访问和修改 工作目录如下:

/* get the wd */
?- working_directory(X, X).
X = 'c:/users/user/documents/prolog/'.

/* set the wd */
?- working_directory(_, 'c:/users/user/desktop').
true.

?- absolute_file_name('text.txt', X, [mode(read)]).
X = 'c:/users/user/desktop/text.txt'

咨询谓词在咨询期间使用不同的规则, 它们相对于当前查阅的文件进行解析。