跳到主要内容

Directory

继承

Reference

简要描述

用于处理文件系统的类型。

描述

目录类型。它用于管理目录及其内容(不限于项目文件夹)。

创建新的Directory时,其默认打开的目录是res://。将来可能会有所变化,因此建议始终使用openDirectory进行显式错误检查,以初始化您要操作的位置。

这是有关如何遍历目录文件的示例:

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.")

方法

返回值类型方法名称
intchange_dir(todir: String)
intcopy(from: String, to: String)
boolcurrent_is_dir() const
booldir_exists(path: String)
boolfile_exists(path: String)
Stringget_current_dir()
intget_current_drive()
Stringget_drive(idx: int)
intget_drive_count()
Stringget_next()
intget_space_left()
intlist_dir_begin(skip_navigational: bool = false, skip_hidden: bool = false)
voidlist_dir_end()
intmake_dir(path: String)
intmake_dir_recursive(path: String)
intopen(path: String)
intremove(path: String)
intrename(from: String, to: String)

方法说明

  • change_dir change_dir(todir: String)

将当前打开的目录更改为作为参数传递的目录。参数可以相对于当前目录(例如newdir../newdir),也可以相对于绝对路径(例如/tmp/newdirres://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://folderC:\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_navigationaltrue,则会滤除...

如果skip_hiddentrue,则隐藏文件将被过滤掉。


  • 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/folderC:\tmp\folder)。

返回Error代码常量之一(成功时返回OK)。


  • remove remove(path: String)

删除目标文件或空目录。该参数可以相对于当前目录,也可以是绝对路径。如果目标目录不为空,则操作将失败。

返回Error代码常量之一(成功时返回OK)。


  • rename rename(from: String, to: String)

from文件重命名(移动)到to目标。这两个参数都应该是文件的路径,无论是相对路径还是绝对路径。如果目标文件存在并且不受访问保护,它将被覆盖。

返回Error代码常量之一(成功时返回OK)。