Godot 4.0 文件读取(C#)
搞半天才弄明白Godot文件操作。
Godot的文档总是试图让我使用自定义Resource来支持文件操作,但是我只需要读取纯文本。
读取纯文本
读取纯文本的方式如下:
//Godot.FileAccess这个类和C#自带的类名称一致,有时需要指定别名。
using FileAcc = Godot.FileAccess;
string ReadAll(string path)
{
//path是Godot管理下的文件路径,如 "res://myfolder/myfile.txt"
using var fl = FileAcc.Open(path, FileAcc.ModeFlags.Read);
if (fl == null)
{
var err = FileAcc.GetOpenError();
GD.Print(err);
}
return fl.GetAsText();
}
关于文件路径的约定,参考
https://docs.godotengine.org/en/stable/tutorials/io/data_paths.html
逐行读取
如果需要逐行读取,根据Godot自带的注释得知,应该这样写
while (fl.GetPosition() < fl.GetLength())
{
tststr = fl.GetLine();
}
注意事项
-
写入纯文本的方式类似,但是需要注意项目输出后就不能写入
res://
目录下的内容了。
而user://
目录下的内容总是可读可写的。 -
输出项目时,可能一些文件会被忽略而不会存在于最终的程序中。
需要在导出项目时注意配置:
参考
https://docs.godotengine.org/en/stable/tutorials/io/saving_games.html#