Dart:io ошибка при чтени файла

Изучаю библиотеку dart:io. Проблема при выполнении примера кода из документации `

import 'dart:io';
void main() async {
  var config = File('D:\\wordsone.txt');
  var stringContents = await config.readAsString();
  print('В файле ${stringContents.length} значений.');
} `

Error when reading 'dart_file.dart': No such file or directory. введите сюда описание изображения Пробовал в собственном коде и с массой других примеров. Всегда такая ошибка. Файл не читается даже из Lib проекта. Уважаемые участники сообщества, прошу помочь решить проблему. Спасибо.


Ответы (1 шт):

Автор решения: MiT

UPD: Как заметил @CrazyElf, у вас проблема не в коде, а в его запуске. Выполняя команду dart dart_file.dart, вы видимо обращаетесь к несуществующему файлу. Используя команду dir (ls -la для unix) можно посмотреть список всех файлов в каталоге где запускается команда. Также рекомендую запускать программы на dart таким образом: dart run dart_file.dart


Ошибка "no such file or directory" возникает, потому что Dart, запущенный из консоли, ищет файл wordsone.txt в рабочей директории консоли, а не в директории, где находится ваш Dart-скрипт. Когда вы запускаете код из IDE, рабочая директория обычно устанавливается в директорию проекта, возможно поэтому файл находится.

Этот код даст вам больше информации, также тут есть обработка ошибки:

import 'dart:io';

void main() async {
  print('Current working directory: ${Directory.current.path}');
  
  var config = File('D:\\wordsone.txt');  // Абсолютный путь
  if (await config.exists()) {
    var stringContents = await config.readAsString();
    print('В файле ${stringContents.length} значений.');
  } else {
    print('Файл не найден.');
  }
}

Но рекомендую вам посмотреть в сторону библиотеки path.

→ Ссылка