Просмотр папок в дереве просмотра со структурой MVVM? - PullRequest
0 голосов
/ 16 января 2020

У меня есть три файла в проекте под названием data, который является библиотекой данных в visual studio. Я смотрел учебник под названием MVVM tutorial c# вместе с файловым деревом! это ссылка: https://www.youtube.com/watch?v=U2ZvZwDZmJU примерно в 12:19 он пишет эту строку кода

return GetLogicalDrives().Select(drive => new DirectoryItem { fullPath = drive, Type = DirectoryItemType.Drive }).ToList(); 

Этот код не работает для меня, и я знаю, что у меня нет Directory.GetLogicalDrives но это не то, как выглядит моя папка, поэтому мое пространство имен для трех разных файлов, которые он использует в видео, - это Данные, и это мой код из этих трех Файлов ...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Data
{
    public static  class DirectoryStructure
    {
        public static List<DirectoryItem> GetLogicalDrives()
        {
           return GetLogicalDrives().Select(drive => new DirectoryItem { fullPath = drive, Type = DirectoryItemType.Drive }).ToList(); 
        }

        public static string GetFilefolderName(string path)
        {
            if(string.IsNullOrEmpty(path))
            {
                return string.Empty;    
            }

            var normalizedPath = path.Replace('/', '\\');    
            var lastIndex = normalizedPath.LastIndexOf('\\');

            if(lastIndex <= 0)
            {
                return path; 
            }

            return path.Substring(lastIndex + 1);   
        }
    }

    public class DirectoryItem
    {
        public DirectoryItemType Type { get; set;}
        public string fullPath { get; set; }
        public string Name { get { return DirectoryStructure.GetFilefolderName(this.fullPath); } }  
    }

    public enum DirectoryItemType
    {
        Drive,
        File, 
        Folder
    }
}

Понятия не имею, почему я получаю ошибку из этой строки? Моя структура папок выглядит следующим образом: Data \ Directory в этой папке. У меня есть DirectoryStructure, а остальные файлы находятся под тем же путем, но есть еще одна папка с именем DataFolder. У кого-нибудь есть идея, почему это не работает для меня?

1 Ответ

1 голос
/ 16 января 2020

В вашем коде есть две проблемы:

  1. Ваш метод GetLogicalDrives вызывает себя в своем теле, он не сможет работать с вашими логами c, потому что нет списка для просмотра.

  2. В вашем файле отсутствует директива using. Чтобы получить доступ к классу Directory и затем вызвать метод GetLogicalDrivers, вы должны добавить using System.IO вверху файла.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...