Directory
继承
简要描述
用于处理文件系统的类型。
描述
目录类型。它用于管理目录及其内容(不限于项目文件夹)。
创建新的Directory时,其默认打开的目录是res://
。将来可能会有所变化,因此建议始终使用open来Directory进行显式错误检查,以初始化您要操作的位置。
这是有关如何遍历目录文件的示例:
func dir_contents(path):
var dir = Directory.new()
if dir.open(path) == OK:
dir.list_dir_begin()
var file_name = dir.get_next()
while file_name != "":
if dir.current_is_dir():
print("Found directory: " + file_name)
else:
print("Found file: " + file_name)
file_name = dir.get_next()
else:
print("An error occurred when trying to access the path.")
方法
返回值类型 | 方法名称 |
---|---|
int | change_dir(todir: String) |
int | copy(from: String, to: String) |
bool | current_is_dir() const |
bool | dir_exists(path: String) |
bool | file_exists(path: String) |
String | get_current_dir() |
int | get_current_drive() |
String | get_drive(idx: int) |
int | get_drive_count() |
String | get_next() |
int | get_space_left() |
int | list_dir_begin(skip_navigational: bool = false, skip_hidden: bool = false) |
void | list_dir_end() |
int | make_dir(path: String) |
int | make_dir_recursive(path: String) |
int | open(path: String) |
int | remove(path: String) |
int | rename(from: String, to: String) |
方法说明
- change_dir change_dir(todir: String)
将当前打开的目录更改为作为参数传递的目录。参数可以相对于当前目录(例如newdir
或../newdir
),也可以相对于绝对路径(例如/tmp/newdir
或res://somedir/newdir
)。
返回Error代码常量之一(成功时返回OK
)。
- copy copy(from: String, to: String)
将from
文件复制到to
目标。这两个参数都应该是文件的路径,无论是相对路径还是绝对路径。如果目标文件存在并且不受访问保护,它将被覆盖。
返回Error代码常量之一(成功时返回OK
)。
- current_is_dir current_is_dir() const
返回使用上一个get_next调用处理的当前项是否为目录(.
和..
被视为目录)。
- dir_exists dir_exists(path: String)
返回目标目录是否存在。该参数可以相对于当前目录,也可以是绝对路径。
- file_exists file_exists(path: String)
返回目标文件是否存在。该参数可以相对于当前目录,也可以是绝对路径。
- get_current_dir get_current_dir()
返回当前打开目录的绝对路径(例如res://folder
或C:\tmp\folder
)。
- get_current_drive get_current_drive()
返回当前打开的目录的驱动器索引。见get_drive将返回的索引转换为驱动器的名称。
- get_drive get_drive(idx: int)
在Windows上,返回作为参数(例如C:
)传递的驱动器(分区)的名称。在其他平台上,或者如果请求的驱动器不存在,则该方法返回一个空的String。
- get_drive_count get_drive_count()
在Windows上,返回当前文件系统上安装的驱动器(分区)的数量。在其他平台上,该方法返回0。
- get_next get_next()
返回当前目录中的下一个元素(文件或目录)(包括.
和..
),除非为list_dir_begin指定了skip_navigational
返回文件或目录的名称(而不是其完整路径)。一旦对流进行了完全处理,该方法将返回一个空的String并自动关闭该流(即list_dir_end在这种情况下不是强制性的)。
- get_space_left get_space_left()
在UNIX桌面系统上,返回当前目录磁盘上的可用空间。在其他平台上,此信息不可用,并且该方法返回0或-1。
- list_dir_begin list_dir_begin(skip_navigational: bool = false, skip_hidden: bool = false)
使用get_next函数初始化用于列出所有文件和目录的流,并在需要时关闭当前打开的流。处理完流后,通常应使用list_dir_end将其关闭。
如果skip_navigational
为true
,则会滤除.
和..
。
如果skip_hidden
为true
,则隐藏文件将被过滤掉。
- list_dir_end list_dir_end()
关闭使用list_dir_begin打开的当前流(无论是否已使用get_next对其进行完全处理都无关紧要)。
- make_dir make_dir(path: String)
创建一个目录。该参数可以相对于当前目录,也可以是绝对路径。目标目录应放置在现有目录中(要以递归方式创建完整路径,见make_dir_recursive)。
返回Error代码常量之一(成功时返回OK
)。
- make_dir_recursive make_dir_recursive(path: String)
通过递归调用make_dir,在其路径中创建目标目录和所有必要的中间目录。该参数可以相对于当前目录,也可以是绝对路径。
返回Error代码常量之一(成功时返回OK
)。
- open open(path: String)
打开文件系统的现有目录。path
参数可以是项目树内(res://folder
),用户目录(user://folder
)或用户文件系统的绝对路径(例如/tmp/folder
或C:\tmp\folder
)。
返回Error代码常量之一(成功时返回OK
)。
- remove remove(path: String)
删除目标文件或空目录。该参数可以相对于当前目录,也可以是绝对路径。如果目标目录不为空,则操作将失败。
返回Error代码常量之一(成功时返回OK
)。
- rename rename(from: String, to: String)
将from
文件重命名(移动)到to
目标。这两个参数都应该是文件的路径,无论是相对路径还是绝对路径。如果目标文件存在并且不受访问保护,它将被覆盖。
返回Error代码常量之一(成功时返回OK
)。