Files
godot-docs-l10n/classes/ru/class_diraccess.rst
2025-09-30 13:31:55 +02:00

779 lines
56 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. meta::
:keywords: directory, path, folder
.. _class_DirAccess:
DirAccess
=========
**Наследует:** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
Предоставляет методы управления каталогами и их содержимым.
.. rst-class:: classref-introduction-group
Описание
----------------
Этот класс используется для управления каталогами и их содержимым, даже за пределами папки проекта.
\ **DirAccess** нельзя создать напрямую. Вместо этого он создается с помощью статического метода, который принимает путь, по которому он будет открыт.
Большинство методов имеют статическую альтернативу, которую можно использовать без создания **DirAccess**. Статические методы поддерживают только абсолютные пути (включая ``res://`` и ``user://``).
::
# Стандарт
var dir = DirAccess.open("user://levels")
dir.make_dir("world1")
# Статичный
DirAccess.make_dir_absolute("user://levels/world1")
\ **Примечание:** Доступ к каталогам проекта ("res://") после экспорта может вести себя непредсказуемо, поскольку некоторые файлы преобразуются в форматы, специфичные для движка, и их исходные файлы могут отсутствовать в ожидаемом пакете PCK. Из-за этого для доступа к ресурсам в экспортированном проекте рекомендуется использовать :ref:`ResourceLoader<class_ResourceLoader>` вместо :ref:`FileAccess<class_FileAccess>`.
Вот пример того, как перебирать файлы каталога:
.. tabs::
.. code-tab:: gdscript
func dir_contents(path):
var dir = DirAccess.open(path)
if dir:
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.")
.. code-tab:: csharp
public void DirContents(string path)
{
using var dir = DirAccess.Open(path);
if (dir != null)
{
dir.ListDirBegin();
string fileName = dir.GetNext();
while (fileName != "")
{
if (dir.CurrentIsDir())
{
GD.Print($"Found directory: {fileName}");
}
else
{
GD.Print($"Found file: {fileName}");
}
fileName = dir.GetNext();
}
}
else
{
GD.Print("An error occurred when trying to access the path.");
}
}
Имейте в виду, что имена файлов могут измениться или быть переназначены после экспорта. Если вы хотите увидеть фактический список файлов ресурсов, как он отображается в редакторе, используйте вместо этого :ref:`ResourceLoader.list_directory()<class_ResourceLoader_method_list_directory>`.
.. rst-class:: classref-introduction-group
Обучающие материалы
--------------------------------------
- :doc:`Файловая система <../tutorials/scripting/filesystem>`
.. rst-class:: classref-reftable-group
Свойства
----------------
.. table::
:widths: auto
+-------------------------+----------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`include_hidden<class_DirAccess_property_include_hidden>` |
+-------------------------+----------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`include_navigational<class_DirAccess_property_include_navigational>` |
+-------------------------+----------------------------------------------------------------------------+
.. rst-class:: classref-reftable-group
Методы
------------
.. table::
:widths: auto
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`change_dir<class_DirAccess_method_change_dir>`\ (\ to_dir\: :ref:`String<class_String>`\ ) |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`copy<class_DirAccess_method_copy>`\ (\ from\: :ref:`String<class_String>`, to\: :ref:`String<class_String>`, chmod_flags\: :ref:`int<class_int>` = -1\ ) |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`copy_absolute<class_DirAccess_method_copy_absolute>`\ (\ from\: :ref:`String<class_String>`, to\: :ref:`String<class_String>`, chmod_flags\: :ref:`int<class_int>` = -1\ ) |static| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`create_link<class_DirAccess_method_create_link>`\ (\ source\: :ref:`String<class_String>`, target\: :ref:`String<class_String>`\ ) |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`DirAccess<class_DirAccess>` | :ref:`create_temp<class_DirAccess_method_create_temp>`\ (\ prefix\: :ref:`String<class_String>` = "", keep\: :ref:`bool<class_bool>` = false\ ) |static| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`current_is_dir<class_DirAccess_method_current_is_dir>`\ (\ ) |const| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`dir_exists<class_DirAccess_method_dir_exists>`\ (\ path\: :ref:`String<class_String>`\ ) |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`dir_exists_absolute<class_DirAccess_method_dir_exists_absolute>`\ (\ path\: :ref:`String<class_String>`\ ) |static| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`file_exists<class_DirAccess_method_file_exists>`\ (\ path\: :ref:`String<class_String>`\ ) |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`get_current_dir<class_DirAccess_method_get_current_dir>`\ (\ include_drive\: :ref:`bool<class_bool>` = true\ ) |const| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_current_drive<class_DirAccess_method_get_current_drive>`\ (\ ) |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_directories<class_DirAccess_method_get_directories>`\ (\ ) |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_directories_at<class_DirAccess_method_get_directories_at>`\ (\ path\: :ref:`String<class_String>`\ ) |static| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_drive_count<class_DirAccess_method_get_drive_count>`\ (\ ) |static| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`get_drive_name<class_DirAccess_method_get_drive_name>`\ (\ idx\: :ref:`int<class_int>`\ ) |static| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_files<class_DirAccess_method_get_files>`\ (\ ) |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_files_at<class_DirAccess_method_get_files_at>`\ (\ path\: :ref:`String<class_String>`\ ) |static| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`get_filesystem_type<class_DirAccess_method_get_filesystem_type>`\ (\ ) |const| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`get_next<class_DirAccess_method_get_next>`\ (\ ) |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`get_open_error<class_DirAccess_method_get_open_error>`\ (\ ) |static| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_space_left<class_DirAccess_method_get_space_left>`\ (\ ) |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_bundle<class_DirAccess_method_is_bundle>`\ (\ path\: :ref:`String<class_String>`\ ) |const| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_case_sensitive<class_DirAccess_method_is_case_sensitive>`\ (\ path\: :ref:`String<class_String>`\ ) |const| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_equivalent<class_DirAccess_method_is_equivalent>`\ (\ path_a\: :ref:`String<class_String>`, path_b\: :ref:`String<class_String>`\ ) |const| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_link<class_DirAccess_method_is_link>`\ (\ path\: :ref:`String<class_String>`\ ) |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`list_dir_begin<class_DirAccess_method_list_dir_begin>`\ (\ ) |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`list_dir_end<class_DirAccess_method_list_dir_end>`\ (\ ) |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`make_dir<class_DirAccess_method_make_dir>`\ (\ path\: :ref:`String<class_String>`\ ) |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`make_dir_absolute<class_DirAccess_method_make_dir_absolute>`\ (\ path\: :ref:`String<class_String>`\ ) |static| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`make_dir_recursive<class_DirAccess_method_make_dir_recursive>`\ (\ path\: :ref:`String<class_String>`\ ) |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`make_dir_recursive_absolute<class_DirAccess_method_make_dir_recursive_absolute>`\ (\ path\: :ref:`String<class_String>`\ ) |static| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`DirAccess<class_DirAccess>` | :ref:`open<class_DirAccess_method_open>`\ (\ path\: :ref:`String<class_String>`\ ) |static| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`read_link<class_DirAccess_method_read_link>`\ (\ path\: :ref:`String<class_String>`\ ) |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`remove<class_DirAccess_method_remove>`\ (\ path\: :ref:`String<class_String>`\ ) |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`remove_absolute<class_DirAccess_method_remove_absolute>`\ (\ path\: :ref:`String<class_String>`\ ) |static| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`rename<class_DirAccess_method_rename>`\ (\ from\: :ref:`String<class_String>`, to\: :ref:`String<class_String>`\ ) |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`rename_absolute<class_DirAccess_method_rename_absolute>`\ (\ from\: :ref:`String<class_String>`, to\: :ref:`String<class_String>`\ ) |static| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания свойств
--------------------------------
.. _class_DirAccess_property_include_hidden:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **include_hidden** :ref:`🔗<class_DirAccess_property_include_hidden>`
.. rst-class:: classref-property-setget
- |void| **set_include_hidden**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_include_hidden**\ (\ )
Если ``true``, скрытые файлы включаются при навигации по каталогу.
Влияет на :ref:`list_dir_begin()<class_DirAccess_method_list_dir_begin>`, :ref:`get_directories()<class_DirAccess_method_get_directories>` и :ref:`get_files()<class_DirAccess_method_get_files>`.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_property_include_navigational:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **include_navigational** :ref:`🔗<class_DirAccess_property_include_navigational>`
.. rst-class:: classref-property-setget
- |void| **set_include_navigational**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **get_include_navigational**\ (\ )
Если ``true``, ``.`` и ``..`` включены при навигации по каталогу.
Влияет на :ref:`list_dir_begin()<class_DirAccess_method_list_dir_begin>` и :ref:`get_directories()<class_DirAccess_method_get_directories>`.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания метода
------------------------------
.. _class_DirAccess_method_change_dir:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **change_dir**\ (\ to_dir\: :ref:`String<class_String>`\ ) :ref:`🔗<class_DirAccess_method_change_dir>`
Изменяет текущий открытый каталог на тот, который передан в качестве аргумента. Аргумент может быть относительным к текущему каталогу (например, ``newdir`` или ``../newdir``) или абсолютным путем (например, ``/tmp/newdir`` или ``res://somedir/newdir``).
Возвращает одну из констант кода :ref:`Error<enum_@GlobalScope_Error>` (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` при успешном выполнении).
\ **Примечание:** Новый каталог должен находиться в той же области, например, если вы открыли каталог внутри ``res://``, вы не можете изменить его на каталог ``user://``. Если вам нужно открыть каталог в другой области доступа, используйте :ref:`open()<class_DirAccess_method_open>` для создания нового экземпляра.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_copy:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **copy**\ (\ from\: :ref:`String<class_String>`, to\: :ref:`String<class_String>`, chmod_flags\: :ref:`int<class_int>` = -1\ ) :ref:`🔗<class_DirAccess_method_copy>`
Копирует файл ``from`` в место назначения ``to``. Оба аргумента должны быть путями к файлам, относительными или абсолютными. Если файл назначения существует и не защищен от доступа, он будет перезаписан.
Если ``chmod_flags`` отличается от ``-1``, разрешения Unix для пути назначения будут установлены на указанное значение, если оно доступно в текущей операционной системе.
Возвращает одну из констант кода :ref:`Error<enum_@GlobalScope_Error>` (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` при успешном выполнении).
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_copy_absolute:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **copy_absolute**\ (\ from\: :ref:`String<class_String>`, to\: :ref:`String<class_String>`, chmod_flags\: :ref:`int<class_int>` = -1\ ) |static| :ref:`🔗<class_DirAccess_method_copy_absolute>`
Статическая версия :ref:`copy()<class_DirAccess_method_copy>`. Поддерживает только абсолютные пути.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_create_link:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **create_link**\ (\ source\: :ref:`String<class_String>`, target\: :ref:`String<class_String>`\ ) :ref:`🔗<class_DirAccess_method_create_link>`
Создает символическую ссылку между файлами или папками.
\ **Примечание:** В Windows этот метод работает только если приложение запущено с повышенными привилегиями или включен режим разработчика.
\ **Примечание:** Этот метод реализован в macOS, Linux и Windows.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_create_temp:
.. rst-class:: classref-method
:ref:`DirAccess<class_DirAccess>` **create_temp**\ (\ prefix\: :ref:`String<class_String>` = "", keep\: :ref:`bool<class_bool>` = false\ ) |static| :ref:`🔗<class_DirAccess_method_create_temp>`
Создает временный каталог. Этот каталог будет освобожден при освобождении возвращенного **DirAccess**.
Если ``prefix`` не пуст, он будет добавлен к имени каталога, разделенному ``-``.
Если ``keep`` равен ``true``, каталог не удаляется при освобождении возвращенного **DirAccess**.
Возвращает ``null``, если открытие каталога не удалось. Вы можете использовать :ref:`get_open_error()<class_DirAccess_method_get_open_error>`, чтобы проверить возникшую ошибку.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_current_is_dir:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **current_is_dir**\ (\ ) |const| :ref:`🔗<class_DirAccess_method_current_is_dir>`
Возвращает, является ли текущий элемент, обработанный последним вызовом :ref:`get_next()<class_DirAccess_method_get_next>`, каталогом (``.`` и ``..`` считаются каталогами).
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_dir_exists:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **dir_exists**\ (\ path\: :ref:`String<class_String>`\ ) :ref:`🔗<class_DirAccess_method_dir_exists>`
Возвращает, существует ли целевой каталог. Аргумент может быть относительным к текущему каталогу или абсолютным путем.
\ **Примечание:** Возвращаемый :ref:`bool<class_bool>` в редакторе и после экспорта при использовании в пути в каталоге ``res://`` может отличаться. Некоторые файлы при экспорте преобразуются в форматы, специфичные для движка, что может изменить структуру каталога.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_dir_exists_absolute:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **dir_exists_absolute**\ (\ path\: :ref:`String<class_String>`\ ) |static| :ref:`🔗<class_DirAccess_method_dir_exists_absolute>`
Статическая версия :ref:`dir_exists()<class_DirAccess_method_dir_exists>`. Поддерживает только абсолютные пути.
\ **Примечание:** Возвращаемый :ref:`bool<class_bool>` в редакторе и после экспорта при использовании в пути в каталоге ``res://`` может отличаться. Некоторые файлы при экспорте преобразуются в форматы, специфичные для движка, что может изменить структуру каталога.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_file_exists:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **file_exists**\ (\ path\: :ref:`String<class_String>`\ ) :ref:`🔗<class_DirAccess_method_file_exists>`
Возвращает, существует ли целевой файл. Аргумент может быть относительным к текущему каталогу или абсолютным путем.
Для статического эквивалента используйте :ref:`FileAccess.file_exists()<class_FileAccess_method_file_exists>`.
\ **Примечание:** Многие типы ресурсов импортируются (например, текстуры или звуковые файлы), и их исходный ресурс не будет включен в экспортированную игру, поскольку используется только импортированная версия. См. :ref:`ResourceLoader.exists()<class_ResourceLoader_method_exists>` для альтернативного подхода, который учитывает переназначение ресурсов.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_get_current_dir:
.. rst-class:: classref-method
:ref:`String<class_String>` **get_current_dir**\ (\ include_drive\: :ref:`bool<class_bool>` = true\ ) |const| :ref:`🔗<class_DirAccess_method_get_current_dir>`
Возвращает абсолютный путь к текущему открытому каталогу (например, ``res://folder`` или ``C:\tmp\folder``).
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_get_current_drive:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_current_drive**\ (\ ) :ref:`🔗<class_DirAccess_method_get_current_drive>`
Возвращает индекс диска текущего открытого каталога. См. :ref:`get_drive_name()<class_DirAccess_method_get_drive_name>` для преобразования возвращаемого индекса в имя диска.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_get_directories:
.. rst-class:: classref-method
:ref:`PackedStringArray<class_PackedStringArray>` **get_directories**\ (\ ) :ref:`🔗<class_DirAccess_method_get_directories>`
Возвращает :ref:`PackedStringArray<class_PackedStringArray>`, содержащий имена файлов содержимого каталога, за исключением файлов. Массив сортируется в алфавитном порядке.
Влияет на :ref:`include_hidden<class_DirAccess_property_include_hidden>` и :ref:`include_navigational<class_DirAccess_property_include_navigational>`.
\ **Примечание:** Возвращаемые каталоги в редакторе и после экспорта в каталог ``res://`` могут отличаться, так как некоторые файлы при экспорте преобразуются в форматы, специфичные для движка.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_get_directories_at:
.. rst-class:: classref-method
:ref:`PackedStringArray<class_PackedStringArray>` **get_directories_at**\ (\ path\: :ref:`String<class_String>`\ ) |static| :ref:`🔗<class_DirAccess_method_get_directories_at>`
Возвращает :ref:`PackedStringArray<class_PackedStringArray>`, содержащий имена файлов содержимого каталога, за исключением файлов, по указанному ``path``. Массив сортируется в алфавитном порядке.
Используйте :ref:`get_directories()<class_DirAccess_method_get_directories>`, если вам нужен больший контроль над тем, что будет включено.
\ **Примечание:** Возвращаемые каталоги в редакторе и после экспорта в каталог ``res://`` могут отличаться, поскольку некоторые файлы при экспорте преобразуются в форматы, специфичные для движка.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_get_drive_count:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_drive_count**\ (\ ) |static| :ref:`🔗<class_DirAccess_method_get_drive_count>`
В Windows возвращает количество дисков (разделов), смонтированных в текущей файловой системе.
В macOS и Android возвращает количество смонтированных томов.
В Linux возвращает количество смонтированных томов и закладок GTK 3.
На других платформах метод возвращает 0.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_get_drive_name:
.. rst-class:: classref-method
:ref:`String<class_String>` **get_drive_name**\ (\ idx\: :ref:`int<class_int>`\ ) |static| :ref:`🔗<class_DirAccess_method_get_drive_name>`
В Windows возвращает имя диска (раздела), переданное в качестве аргумента (например, ``C:``).
В macOS возвращает путь к смонтированному тому, переданному в качестве аргумента.
В Linux возвращает путь к смонтированному тому или закладке GTK 3, переданной в качестве аргумента.
В Android (уровень API 30+) возвращает путь к смонтированному тому в качестве аргумента.
На других платформах или если запрошенный диск не существует, метод возвращает пустую строку.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_get_files:
.. rst-class:: classref-method
:ref:`PackedStringArray<class_PackedStringArray>` **get_files**\ (\ ) :ref:`🔗<class_DirAccess_method_get_files>`
Возвращает :ref:`PackedStringArray<class_PackedStringArray>`, содержащий имена файлов содержимого каталога, за исключением каталогов. Массив сортируется в алфавитном порядке.
Влияет на :ref:`include_hidden<class_DirAccess_property_include_hidden>`.
\ **Примечание:** При использовании в пути ``res://`` в экспортированном проекте возвращаются только файлы, фактически включенные в PCK на заданном уровне папки. На практике это означает, что поскольку импортированные ресурсы хранятся в папке верхнего уровня ``.godot/``, возвращаются только пути к файлам ``*.gd`` и ``*.import`` (плюс несколько файлов, таких как ``project.godot`` или ``project.binary`` и значок проекта). В экспортированном проекте список возвращаемых файлов также будет различаться в зависимости от того, является ли :ref:`ProjectSettings.editor/export/convert_text_resources_to_binary<class_ProjectSettings_property_editor/export/convert_text_resources_to_binary>` ``true``.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_get_files_at:
.. rst-class:: classref-method
:ref:`PackedStringArray<class_PackedStringArray>` **get_files_at**\ (\ path\: :ref:`String<class_String>`\ ) |static| :ref:`🔗<class_DirAccess_method_get_files_at>`
Возвращает :ref:`PackedStringArray<class_PackedStringArray>`, содержащий имена файлов содержимого каталога, за исключением каталогов, по указанному ``path``. Массив сортируется в алфавитном порядке.
Используйте :ref:`get_files()<class_DirAccess_method_get_files>`, если вам нужен больший контроль над тем, что будет включено.
\ **Примечание:** При использовании в пути ``res://`` в экспортированном проекте возвращаются только файлы, включенные в PCK на указанном уровне папки. На практике это означает, что поскольку импортированные ресурсы хранятся в папке верхнего уровня ``.godot/``, возвращаются только пути к файлам ``.gd`` и ``.import`` (плюс несколько других файлов, таких как ``project.godot`` или ``project.binary`` и значок проекта). В экспортированном проекте список возвращаемых файлов также будет различаться в зависимости от :ref:`ProjectSettings.editor/export/convert_text_resources_to_binary<class_ProjectSettings_property_editor/export/convert_text_resources_to_binary>`.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_get_filesystem_type:
.. rst-class:: classref-method
:ref:`String<class_String>` **get_filesystem_type**\ (\ ) |const| :ref:`🔗<class_DirAccess_method_get_filesystem_type>`
Возвращает имя типа файловой системы диска текущего каталога. Возвращаемые значения представляют собой строки в верхнем регистре, например ``NTFS``, ``FAT32``, ``EXFAT``, ``APFS``, ``EXT4``, ``BTRFS`` и т. д.
\ **Примечание:** Этот метод реализован в macOS, Linux, Windows и для виртуальной файловой системы PCK.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_get_next:
.. rst-class:: classref-method
:ref:`String<class_String>` **get_next**\ (\ ) :ref:`🔗<class_DirAccess_method_get_next>`
Возвращает следующий элемент (файл или каталог) в текущем каталоге.
Возвращается имя файла или каталога (а не его полный путь). После полной обработки потока метод возвращает пустую :ref:`String<class_String>` и автоматически закрывает поток (т. е. :ref:`list_dir_end()<class_DirAccess_method_list_dir_end>` не будет обязательным в таком случае).
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_get_open_error:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **get_open_error**\ (\ ) |static| :ref:`🔗<class_DirAccess_method_get_open_error>`
Возвращает результат последнего вызова :ref:`open()<class_DirAccess_method_open>` в текущем потоке.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_get_space_left:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_space_left**\ (\ ) :ref:`🔗<class_DirAccess_method_get_space_left>`
Возвращает доступное пространство на диске текущего каталога в байтах. Возвращает ``0``, если платформенно-зависимый метод запроса доступного пространства не срабатывает.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_is_bundle:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_bundle**\ (\ path\: :ref:`String<class_String>`\ ) |const| :ref:`🔗<class_DirAccess_method_is_bundle>`
Возвращает ``true``, если каталог является пакетом macOS.
\ **Примечание:** Этот метод реализован в macOS.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_is_case_sensitive:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_case_sensitive**\ (\ path\: :ref:`String<class_String>`\ ) |const| :ref:`🔗<class_DirAccess_method_is_case_sensitive>`
Возвращает ``true``, если файловая система или каталог используют имена файлов, чувствительные к регистру.
\ **Примечание:** Этот метод реализован в macOS, Linux (только для файловых систем EXT4 и F2FS) и Windows. На других платформах он всегда возвращает ``true``.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_is_equivalent:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_equivalent**\ (\ path_a\: :ref:`String<class_String>`, path_b\: :ref:`String<class_String>`\ ) |const| :ref:`🔗<class_DirAccess_method_is_equivalent>`
Возвращает ``true``, если пути ``path_a`` и ``path_b`` разрешаются в один и тот же объект файловой системы. Возвращает ``false`` в противном случае, даже если файлы идентичны побитно (например, идентичные копии файла, которые не являются символическими ссылками).
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_is_link:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_link**\ (\ path\: :ref:`String<class_String>`\ ) :ref:`🔗<class_DirAccess_method_is_link>`
Возвращает ``true``, если файл или каталог является символической ссылкой, соединением каталогов или другой точкой повторной обработки.
\ **Примечание:** Этот метод реализован в macOS, Linux и Windows.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_list_dir_begin:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **list_dir_begin**\ (\ ) :ref:`🔗<class_DirAccess_method_list_dir_begin>`
Инициализирует поток, используемый для перечисления всех файлов и каталогов с помощью функции :ref:`get_next()<class_DirAccess_method_get_next>`, закрывая текущий открытый поток, если необходимо. После обработки потока его обычно следует закрыть с помощью :ref:`list_dir_end()<class_DirAccess_method_list_dir_end>`.
Затрагивается :ref:`include_hidden<class_DirAccess_property_include_hidden>` и :ref:`include_navigational<class_DirAccess_property_include_navigational>`.
\ **Примечание:** Порядок файлов и каталогов, возвращаемых этим методом, не является детерминированным и может различаться в зависимости от операционной системы. Если вам нужен список всех файлов или папок, отсортированный в алфавитном порядке, используйте :ref:`get_files()<class_DirAccess_method_get_files>` или :ref:`get_directories()<class_DirAccess_method_get_directories>`.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_list_dir_end:
.. rst-class:: classref-method
|void| **list_dir_end**\ (\ ) :ref:`🔗<class_DirAccess_method_list_dir_end>`
Закрывает текущий поток, открытый с помощью :ref:`list_dir_begin()<class_DirAccess_method_list_dir_begin>` (не имеет значения, был ли он полностью обработан с помощью :ref:`get_next()<class_DirAccess_method_get_next>`).
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_make_dir:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **make_dir**\ (\ path\: :ref:`String<class_String>`\ ) :ref:`🔗<class_DirAccess_method_make_dir>`
Создает каталог. Аргумент может быть относительным к текущему каталогу или абсолютным путем. Целевой каталог должен быть помещен в уже существующий каталог (чтобы создать полный путь рекурсивно, см. :ref:`make_dir_recursive()<class_DirAccess_method_make_dir_recursive>`).
Возвращает одну из констант кода :ref:`Error<enum_@GlobalScope_Error>` (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` при успешном выполнении).
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_make_dir_absolute:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **make_dir_absolute**\ (\ path\: :ref:`String<class_String>`\ ) |static| :ref:`🔗<class_DirAccess_method_make_dir_absolute>`
Статическая версия :ref:`make_dir()<class_DirAccess_method_make_dir>`. Поддерживает только абсолютные пути.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_make_dir_recursive:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **make_dir_recursive**\ (\ path\: :ref:`String<class_String>`\ ) :ref:`🔗<class_DirAccess_method_make_dir_recursive>`
Создает целевой каталог и все необходимые промежуточные каталоги в его пути, вызывая :ref:`make_dir()<class_DirAccess_method_make_dir>` рекурсивно. Аргумент может быть относительным к текущему каталогу или абсолютным путем.
Возвращает одну из констант кода :ref:`Error<enum_@GlobalScope_Error>` (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` при успешном выполнении).
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_make_dir_recursive_absolute:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **make_dir_recursive_absolute**\ (\ path\: :ref:`String<class_String>`\ ) |static| :ref:`🔗<class_DirAccess_method_make_dir_recursive_absolute>`
Статическая версия :ref:`make_dir_recursive()<class_DirAccess_method_make_dir_recursive>`. Поддерживает только абсолютные пути.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_open:
.. rst-class:: classref-method
:ref:`DirAccess<class_DirAccess>` **open**\ (\ path\: :ref:`String<class_String>`\ ) |static| :ref:`🔗<class_DirAccess_method_open>`
Создает новый объект **DirAccess** и открывает существующий каталог файловой системы. Аргумент ``path`` может находиться в дереве проекта (``res://folder``), пользовательском каталоге (``user://folder``) или в абсолютном пути пользовательской файловой системы (например, ``/tmp/folder`` или ``C:\tmp\folder``).
Возвращает ``null``, если открытие каталога не удалось. Вы можете использовать :ref:`get_open_error()<class_DirAccess_method_get_open_error>` для проверки возникшей ошибки.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_read_link:
.. rst-class:: classref-method
:ref:`String<class_String>` **read_link**\ (\ path\: :ref:`String<class_String>`\ ) :ref:`🔗<class_DirAccess_method_read_link>`
Возвращает цель символической ссылки.
\ **Примечание:** Этот метод реализован в macOS, Linux и Windows.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_remove:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **remove**\ (\ path\: :ref:`String<class_String>`\ ) :ref:`🔗<class_DirAccess_method_remove>`
Окончательно удаляет целевой файл или пустой каталог. Аргумент может быть относительным к текущему каталогу или абсолютным путем. Если целевой каталог не пустой, операция завершится неудачей.
Если вы не хотите удалять файл/каталог навсегда, используйте вместо этого :ref:`OS.move_to_trash()<class_OS_method_move_to_trash>`.
Возвращает одну из констант кода :ref:`Error<enum_@GlobalScope_Error>` (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` при успешном выполнении).
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_remove_absolute:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **remove_absolute**\ (\ path\: :ref:`String<class_String>`\ ) |static| :ref:`🔗<class_DirAccess_method_remove_absolute>`
Статическая версия :ref:`remove()<class_DirAccess_method_remove>`. Поддерживает только абсолютные пути.
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_rename:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **rename**\ (\ from\: :ref:`String<class_String>`, to\: :ref:`String<class_String>`\ ) :ref:`🔗<class_DirAccess_method_rename>`
Переименовывает (перемещает) файл или каталог ``from`` в место назначения ``to``. Оба аргумента должны быть путями к файлам или каталогам, относительными или абсолютными. Если файл или каталог назначения существует и не защищен от доступа, он будет перезаписан.
Возвращает одну из констант кода :ref:`Error<enum_@GlobalScope_Error>` (:ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` при успешном выполнении).
.. rst-class:: classref-item-separator
----
.. _class_DirAccess_method_rename_absolute:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **rename_absolute**\ (\ from\: :ref:`String<class_String>`, to\: :ref:`String<class_String>`\ ) |static| :ref:`🔗<class_DirAccess_method_rename_absolute>`
Статическая версия :ref:`rename()<class_DirAccess_method_rename>`. Поддерживает только абсолютные пути.
.. |virtual| replace:: :abbr:`virtual (Этот метод обычно должен быть переопределен пользователем, чтобы иметь какой-либо эффект.)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (Этот метод не имеет побочных эффектов. Он не изменяет ни одну из переменных-членов экземпляра.)`
.. |vararg| replace:: :abbr:`vararg (Этот метод принимает любое количество аргументов после описанных здесь.)`
.. |constructor| replace:: :abbr:`constructor (Этот метод используется для создания типа.)`
.. |static| replace:: :abbr:`static (Этот метод не нуждается в вызове экземпляра, поэтому его можно вызвать напрямую, используя имя класса.)`
.. |operator| replace:: :abbr:`operator (Этот метод описывает допустимый оператор для использования с этим типом в качестве левого операнда.)`
.. |bitfield| replace:: :abbr:`BitField (Это значение является целым числом, составленным как битовая маска следующих флагов.)`
.. |void| replace:: :abbr:`void (Нет возвращаемого значения.)`