DirectoryInfo.EnumerateFiles() результат пуст в Ubuntu

#c# #.net-core #ubuntu-20.04 #system.io.directory #system.io.fileinfo

#c# #.net-ядро #ubuntu-20.04 #system.io.directory #system.io.fileinfo

Вопрос:

Я смотрю на систему.Ввод-вывод и написал небольшой метод для подсчета количества файлов в каталоге. Проблема, с которой я сталкиваюсь, заключается в том, что когда я отлаживаю этот фрагмент кода в Windows, я могу перечислять по коллекции при наведении курсора мыши на коллекцию. Итак, вот код и изображение в Visual Studio в Windows.

Перечисление файлов во время отладки

Вот код, о котором идет речь:

 static void Main(string[] args)
{
    var dir = new DirectoryInfo(@"/home/user1/Downloads/Folder that 
                  has spaces in name");
    var files = dir.EnumerateFiles();
    var count = files.Count();
    Console.WriteLine($"Number of files in Videos Folder is {count}");
}
  

Это то, что я получаю, когда запускаю те же строки кода в ubuntu:

Ошибка при запуске кода в ubuntu

Кто-нибудь может помочь мне понять, что здесь происходит? В обеих папках есть файлы, и разрешения не являются проблемой, поскольку я работаю с папкой в моем домашнем каталоге ( home user Downloads Videos). Имена папок не являются проблемой, как я уже проверил.

Комментарии:

1. Windows использует обратную косую черту () для указания пути к файлу, тогда как Linux использует прямую косую черту (/). Я думаю, что это, вероятно, причина.

2. Извините, я допустил ошибку с путем. Сейчас это исправим. Это также не причина. Проверил это и потратил кучу времени на чтение о разделителе каталогов. Извините за ошибку

3. DirectoryInfo завершится ошибкой, если у вас нет разрешения на чтение любого файла в папке. Попробуйте выполнить foreach (var d в каталоге), а затем добавьте обработчик исключений try / catch, чтобы не выходить из цикла for.

4. и что ls /home/user1/Downloads/Videos показывает?

5. @jdweng уже проверил проблему с разрешениями перед публикацией этого, разрешения не являются проблемой. файлы находятся в папке моего профиля, так что у меня здесь есть полные права доступа.