Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2016, 22:47   #1
Raitek
Пользователь
 
Регистрация: 22.01.2015
Сообщений: 11
По умолчанию Файловый менеджер

Здравствуйте, начал писать файловый менеджер но тут столкнулся с проблемой. выбивает ошибку в выборе CD приводов. скидываю проект прошу посмотреть и посоветовать как это можно исправить. ну и вообще ваши предложения по улучшению его(что можно добавить, как лучше что-то сделать)
Вложения
Тип файла: rar FileM111.rar (249.8 Кб, 45 просмотров)
Raitek вне форума Ответить с цитированием
Старый 20.05.2016, 22:53   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Вместо архива с исходником лучше выложить в сообщении кусок кода относящийся к теме. И текст ошибки.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 21.05.2016, 02:12   #3
Raitek
Пользователь
 
Регистрация: 22.01.2015
Сообщений: 11
По умолчанию

вот ошибку показывает в этом месте
Код:
private void BuildList(string path, ListView lvV)
        {
            lvV.Clear();
            ListView lv = Build.BuildColumnHeaders(lvV);
            lv.SmallImageList = ilIcon;
            lv.LargeImageList = ilIcon;

            DirectoryInfo DirInfo = new DirectoryInfo(path);

            DirectoryInfo[] dirFromArr = DirInfo.GetDirectories();

            FileInfo[] DirFiles = DirInfo.GetFiles();

            if(path != DirInfo.Root.ToString())
                lv.Items.Add(new ListViewItem(new string[] { "...", "", "<Папка>", "" }));

            int cntDir = 0;
            foreach (DirectoryInfo DirName in dirFromArr)
            {
                if (!Properties.Settings.Default.ShowHidden)
                {

                    if ((DirName.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
                    {
                        continue;
                    }                
                }

                Icon iicn = SystemIcon.GetFolderIcon(path + DirName.Name, SystemIcon.IconSize.Small, false);
                ilIcon.Images.Add(iicn);

                ListViewItem lvDiri = new ListViewItem(new string[] { DirName.Name, "", "<Папка>", DirName.LastAccessTime.ToShortDateString() + " " + DirName.LastAccessTime.ToShortTimeString() });

                if (cntDir == 0)
                {
                    lvDiri.Selected = true;
                    lvDiri.Focused = true;
                }
                lvDiri.ImageIndex = nIco++;
                lv.Items.Add(lvDiri);
                cntDir++;
            }
            
            foreach (FileInfo DirFile in DirFiles)
            {

                if (!Properties.Settings.Default.ShowHidden)
                {

                    if ((DirFile.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
                    {
                        continue;
                    }
                }

                ilIcon.Images.Add(SystemIcon.GetFileIcon(path + DirFile.Name, SystemIcon.IconSize.Small, false));

                ListViewItem lvFilei = new ListViewItem(new string[] { Path.GetFileNameWithoutExtension(path + DirFile.Name), DirFile.Extension, DirFile.Length.ToString(), DirFile.LastAccessTime.ToShortDateString() + " " + DirFile.LastAccessTime.ToShortTimeString() });
                lvFilei.ImageIndex = nIco++;
                lv.Items.Add(lvFilei);
            }
        }
Изображения
Тип файла: png 1.png (17.5 Кб, 279 просмотров)
Тип файла: jpg 2.jpg (24.6 Кб, 155 просмотров)
Raitek вне форума Ответить с цитированием
Старый 21.05.2016, 02:47   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

воспользуйтесь DriveInfo.IsReady чтоб проверить.
или же ловите исключение, но там надо код ошибки проверять что именно оно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.05.2016, 13:52   #5
Raitek
Пользователь
 
Регистрация: 22.01.2015
Сообщений: 11
По умолчанию

я разобрался с приводами но чего у меня на том же месте выбивает снова ошибку но уже тогда когда я хочу открыть файлы любые.
Код:
  
      private void BuildList(string path, ListView lvV)
        {
            lvV.Clear();
            
            DriveInfo drive = new DriveInfo(Path.GetPathRoot(path));
            if (drive.IsReady)
            {
            ListView lv = Build.BuildColumnHeaders(lvV);
            lv.SmallImageList = ilIcon;
            lv.LargeImageList = ilIcon;

            DirectoryInfo DirInfo = new DirectoryInfo(path);

           DirectoryInfo[] dirFromArr = DirInfo.GetDirectories();

            FileInfo[] DirFiles = DirInfo.GetFiles();

            if(path != DirInfo.Root.ToString())
                lv.Items.Add(new ListViewItem(new string[] { "...", "", "<Папка>", "" }));

            int cntDir = 0;
            foreach (DirectoryInfo DirName in dirFromArr)
            {
                if (!Properties.Settings.Default.ShowHidden)
                {

                    if ((DirName.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
                    {
                        continue;
                    }                
                }

                Icon iicn = SystemIcon.GetFolderIcon(path + DirName.Name, SystemIcon.IconSize.Small, false);
                ilIcon.Images.Add(iicn);

                ListViewItem lvDiri = new ListViewItem(new string[] { DirName.Name, "", "<Папка>", DirName.LastAccessTime.ToShortDateString() + " " + DirName.LastAccessTime.ToShortTimeString() });

                if (cntDir == 0)
                {
                    lvDiri.Selected = true;
                    lvDiri.Focused = true;
                }
                lvDiri.ImageIndex = nIco++;
                lv.Items.Add(lvDiri);
                cntDir++;
            }
            
            foreach (FileInfo DirFile in DirFiles)
            {

                if (!Properties.Settings.Default.ShowHidden)
                {

                    if ((DirFile.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
                    {
                        continue;
                    }
                }

                ilIcon.Images.Add(SystemIcon.GetFileIcon(path + DirFile.Name, SystemIcon.IconSize.Small, false));

                ListViewItem lvFilei = new ListViewItem(new string[] { Path.GetFileNameWithoutExtension(path + DirFile.Name), DirFile.Extension, DirFile.Length.ToString(), DirFile.LastAccessTime.ToShortDateString() + " " + DirFile.LastAccessTime.ToShortTimeString() });
                lvFilei.ImageIndex = nIco++;
                lv.Items.Add(lvFilei);
            }
            }
            else
            {
                MessageBox.Show("Устройство не готово!");
            }
            
            }
Изображения
Тип файла: jpg 2.jpg (25.7 Кб, 134 просмотров)
Raitek вне форума Ответить с цитированием
Старый 22.05.2016, 14:00   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну так видимо у вас нет папки C:\AiOLog
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 22.05.2016, 14:19   #7
Raitek
Пользователь
 
Регистрация: 22.01.2015
Сообщений: 11
По умолчанию

а можно чуть конкретнее....?
когда я выбираю другой файл с другим путём то просто меняется его путь в окне но файл то есть
Изображения
Тип файла: jpg 1.jpg (21.1 Кб, 147 просмотров)

Последний раз редактировалось Raitek; 22.05.2016 в 14:22.
Raitek вне форума Ответить с цитированием
Старый 22.05.2016, 14:33   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Этот путь точно существует и это точно папка, а не файл?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 22.05.2016, 16:17   #9
Raitek
Пользователь
 
Регистрация: 22.01.2015
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Этот путь точно существует и это точно папка, а не файл?
да существует. если выбирать другой файл то путь меняется но ошибка остаётся
Изображения
Тип файла: jpg 1.jpg (21.1 Кб, 130 просмотров)
Raitek вне форума Ответить с цитированием
Старый 22.05.2016, 16:30   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

так почему ваш код трактует файлы как папки?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
файловый менеджер mitiay Фриланс 6 24.09.2014 20:57
Файловый менеджер HTTqp Общие вопросы Delphi 1 03.04.2014 01:52
Файловый менеджер dracula6322 Общие вопросы C/C++ 10 09.09.2013 07:32
Файловый менеджер wcat99 Общие вопросы Delphi 1 30.04.2011 21:06
Файловый менеджер akosh12345 Общие вопросы Delphi 12 11.05.2010 21:55