Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не работает файловая система в Cosmos

Artem Artem Ученик (80), открыт 3 недели назад
Код: .google.com/forms/d/e/1FAIpQLSfsWD9K4nqY1ylDBietTJxlh58I5WDDeq2VCy5oy1wY8XGx7w/viewform?usp=dialog (Добавьте в начало https://docs)
6 ответов
Арсений . Мастер (1712) 3 недели назад
ну понятно что в космосе файловая система не факт что будет работать
clover Мастер (1546) 3 недели назад
Сделай так чтобы заработало
Artem ArtemУченик (80) 3 недели назад
А как?
Nathanael Cade Профи (573) 3 недели назад
братан ну попробуй httpsdocsgooglecomformsдеверьнет нихача как будто файл заблудился в космосе
Tap3z Мастер (1545) 3 недели назад
Проверьте инициализацию файловой системы
Убедитесь, что файловая система правильно инициализирована в вашем коде
Если проблема сохраняется, проверьте:
  1. Корректность сборки проекта (используйте Cosmos User Kit).
  2. Наличие using Sys.FileSystem; в коде.
  3. Аппаратную совместимость (если работаете с реальным железом)
Artem ArtemУченик (80) 3 недели назад
Я делал инициализацию файловой системы в коде (ошибка Error! File system is not work!): try
{
Directory.CreateDirectory(@"0:\FileSystemInitialization");
Thread.Sleep(10);
Directory.Delete(@"0:\FileSystemInitialization", true);
var disks = fs.GetDisks();
}
catch (Exception)
{
Console.Write("Error File system is not work");
}




Использую Cosmos User Kit

Есть using Cosmos.System.FileSystem;

Не понял что такое Аппаратную совместимость (если работаете с реальным железом)

Инцилизация Файловой Системы:

namespace ArteOS
{
public class Kernel : Sys.Kernel
{
Sys.FileSystem.CosmosVFS fs;
}
protected override void BeforeRun()
{
fs = new Sys.FileSystem.CosmosVFS();
Sys.FileSystem.VFS.VFSManager.RegisterVFS(fs);
}

Оставил только регистрацию файловой системы
Artem ArtemУченик (80) 3 недели назад
Убрал пропуск места потому что не хватало символов
Tap3z Мастер (1545) Artem Artem, Проверь неймспейсы: вместо Sys.FileSystem.CosmosVFS используй Cosmos.System.FileSystem.CosmosVFS. Инициализацию VFS делай в BeforeRun до любых файловых операций. Убери лишние манипуляции с директориями при старте. Путь @"0:" может быть некорректным — проверь через GetDisks(). Если эмулятор — проверь настройки образа диска.
Artem ArtemУченик (80) 3 недели назад
Tap3z Мастер (1545) Artem Artem, Замени объявление Sys.FileSystem.CosmosVFS fs; на Cosmos.System.FileSystem.CosmosVFS fs; внутри класса Kernel. В BeforeRun инициализируй VFS до любых других действий. Пример: protected override void BeforeRun() { fs = new Cosmos.System.FileSystem.CosmosVFS(); Cosmos.System.FileSystem.VFS.VFSManager.RegisterVFS(fs); // Проверь диски var disks = Cosmos.System.FileSystem.VFS.VFSManager.GetDisks(); if (disks.Count == 0) { Console.WriteLine("No disks found!"); return; } // Тест записи try { Directory.CreateDirectory(@"0:\test"); Directory.Delete(@"0:\test"); } catch (Exception e) { Console.WriteLine($"FS Error: {e.Message}"); } }
Artem ArtemУченик (80) 3 недели назад
А где Cosmos Disk Manager?
Tap3z Мастер (1545) Artem Artem, Cosmos Disk Manager встроен в Cosmos Project System. Чтобы создать виртуальный диск:
  1. ПКМ по проекту → Properties → Cosmos.
  2. Убедись, что стоит галочка Enable Virtual Disk.
  3. Задай размер диска (например, 100 МБ).
  4. После сборки проекта диск появится в эмуляторе как 0:
Artem ArtemУченик (80) 3 недели назад
Я нажал пкм по ArteOs нажал Свойства и не пойму где находится Enable Virtual Disk
Artem Artem Ученик (80) И я даже в поиск ввёл это, нет
etar125 Мыслитель (6672) 3 недели назад
ИИ по другому написал:
 using System; 
using Cosmos.System;
using Cosmos.System.FileSystem;
using Cosmos.System.FileSystem.VFS;

namespace MyCosmosKernel
{
public class Kernel : KernelBase
{
protected override void BeforeRun()
{
// Инициализация файловой системы
VFS.Init();
}

protected override void Run()
{
// Создание файла
var file = VFS.CreateFile("example.txt");
if (file != null)
{
Console.WriteLine("Файл example.txt создан.");
// Запись данных в файл
file.WriteString("Hello, Cosmos!");
file.Close();
Console.WriteLine("Данные записаны в файл example.txt.");
}
else
{
Console.WriteLine("Не удалось создать файл example.txt.");
}

// Чтение данных из файла
var readFile = VFS.OpenFile("example.txt", FileMode.Open);
if (readFile != null)
{
Console.WriteLine("Содержимое файла example.txt:");
Console.WriteLine(readFile.ReadString());
readFile.Close();
}
else
{
Console.WriteLine("Не удалось открыть файл example.txt для чтения.");
}
}
}
}
Artem ArtemУченик (80) 3 недели назад
Не могу найти VFS
Похожие вопросы