Ошибка set_file: Cannot open file '' в Godot Engine может указывать на несколько возможных проблем, связанных с работой с файлом. В вашем случае, если ошибка возникает при попытке записи или чтения из файла, а также связана с правами доступа, это может означать несколько вещей.
Возможные причины ошибки:
Проблемы с правами доступа: Если при снятии галочки "только для чтения" в свойствах файла она снова ставится, это может быть связано с ограничениями операционной системы или программой, которая управляет правами доступа. Попробуйте выполнить следующие шаги:
Убедитесь, что у вас есть права на запись в директорию, в которой находится файл.
Если работаете в системе Linux или macOS, попробуйте использовать команду chmod для изменения прав на запись:
chmod +w /путь/к/файлу
В Windows попробуйте запустить Godot от имени администратора.
Проблемы с путем к файлу: Ошибка указывает на то, что путь к файлу пустой (''). Возможно, вы неправильно указываете путь к файлу, либо переменная для пути не инициализирована.
Убедитесь, что в коде правильно задан путь к файлу. Например:
var file = File.new()
if file.open("res://path_to_file.txt", File.READ) == OK:
# Операции с файлом
else:
print("Ошибка открытия файла!")
Проблема может быть также связана с неверным указанием относительного или абсолютного пути. Важно, чтобы путь был корректным относительно структуры проекта.
Использование сторонних библиотек (например, Theora): Если ошибка возникает в контексте работы с видео (например, с библиотекой Theora, как указано в сообщении об ошибке), возможно, сам файл видео поврежден или недоступен. Попробуйте:
Проверить, что файл существует по указанному пути.
Проверить, не используется ли файл в другом процессе, что может мешать его доступу.
Кеширование в Godot: Иногда могут быть проблемы с кешированием ресурсов. Попробуйте перезапустить Godot, очистить кеш (в настройках) или заново загрузить проект.
Как решить:
Проверьте путь к файлу в коде.
Убедитесь, что у вас есть права на запись и чтение этого файла.
Перезапустите Godot, очистите кеш и убедитесь, что файл доступен.
Проверьте, не используется ли файл сторонним приложением (например, если это видеофайл).
Полная ошибка:
E 0:00:01:0151 set_file: Cannot open file ''.
<Ошибка C++> Condition " file.is _null()" is true.
<Исходный код C++>modules/theora/video_stream_theora.cpp:174 @ set_file()
Есть предположение что эта ошибка связана с разрешением на редактирование файла (когда я в атрибутах файла убираю галочку только для записи она ставится обратно)