Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/26: Рейтинг темы: голосов - 26, средняя оценка - 4.77
 Аватар для F&D
74 / 31 / 2
Регистрация: 25.05.2010
Сообщений: 218
.NET 4.x

Простейший файловый менеджер: ошибки при переходе по папкам

04.04.2012, 12:50. Показов 5056. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

Решил, в процессе изучения C#, написать свой коммандер, аналог - Total, Unreal или Free. В общем, файловый менеджер. Пишу почти с нуля, некоторые идеи/варианты/реализации беру из интернета.

Начал делать проект, сравнительно недавно, успехи не большие есть, но вот уже два дня стою на ровном месте, не могу решить проблему.

Ошибка в следующем, есть код, который открывает(переход по папкам) папки в списке listview:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
string myPath = @"\\"; 
void FillList()
        {
            listView1.Items.Clear();
            DirectoryInfo di = new DirectoryInfo(myPath);
            DirectoryInfo[] dirs = di.GetDirectories();
            foreach (DirectoryInfo diNext in dirs)
                listView1.Items.Add(diNext.Name);
            FileInfo[] files = di.GetFiles();
            foreach (FileInfo fiNext in files)
                listView1.Items.Add(fiNext.Name);
        }
private void listView1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            /*
            System.Windows.Forms.ListView lw = (System.Windows.Forms.ListView)sender;
            string filename = lw.SelectedItems[0].Tag.ToString();
            */
 
            myPath += listView1.SelectedItems[0].Text + "/";
            
            FillList();
        }
вот код, текст ошибки:
InvalidArgument=Значение "0" недопустимо для "index".
Хоть убейте - не могу понять, как решить.
Событие к listview прикрепил.

P.S. В строке
C#
1
string myPath = @"\\";
даже, если ставить "@"C:\"" ошибка та же.



Заранее благодарю за помощь!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.04.2012, 12:50
Ответы с готовыми решениями:

Простейший файловый менеджер
Реализовать простейший файловый менеджер с использованием ООП (классы, наследование и так далее). Файловый менеджер должен иметь...

Простейший Файловый менеджер
В одной книге написано как сделать простейший файлменеджер. Я написал все как в книге и прога компилируется, но запускается вот с такой...

Необходимо разработать простейший файловый менеджер
Суть задачи в том, что информацию о файлах необходимо получать через таблицу FAT. Возникли трудности с тем, что не могу понять как хранить...

22
Заблокирован
04.04.2012, 13:36
Цитата Сообщение от F&D Посмотреть сообщение
SelectedItems[0].Text
Вот ваш нулевой индекс.
1
 Аватар для F&D
74 / 31 / 2
Регистрация: 25.05.2010
Сообщений: 218
04.04.2012, 13:41  [ТС]
Цитата Сообщение от Dmitry_gdv Посмотреть сообщение
Вот ваш нулевой индекс.
Уважаемый, Dmitry_gdv, это я понял. Но, не могу понять в чем ошибка именно? И как исправить.
0
Заблокирован
04.04.2012, 13:43
Очень просто - вместо 0 написать 1
0
 Аватар для F&D
74 / 31 / 2
Регистрация: 25.05.2010
Сообщений: 218
04.04.2012, 14:09  [ТС]
Цитата Сообщение от Dmitry_gdv Посмотреть сообщение
Очень просто - вместо 0 написать 1
Не хочу показаться глупым, но этот вариант я тоже прорабатывал - результат:
InvalidArgument=Значение "1" недопустимо для "index".
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.04.2012, 14:18
http://msdn.microsoft.com/en-u... ction.aspx

Нет у него индексатора. Есть свойство Item(int) - работающее как индексатор.
Нет. Лгу. Есть у него индексатор.
0
Заблокирован
04.04.2012, 14:29
Цитата Сообщение от ForEveR Посмотреть сообщение
http://msdn.microsoft.com/en-u... ction.aspx

Нет у него индексатора. Есть свойство Item(int) - работающее как индексатор.
Нет. Лгу. Есть у него индексатор.
Точно - маленько ступил, сорри ...
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.04.2012, 14:31
http://msdn.microsoft.com/en-u... ction.aspx

Нет у него индексатора. Есть свойство Item(int) - работающее как индексатор.
Нет. Лгу. Есть у него индексатор. Видимо просто у вас SelectedItems - пустой SelectedListViewItemCollection, ибо там идет проверка на то возможен ли вообще выбор, и каков переданный индекс (если < 0 или >= размеру ListView.SelectedIndices тогда кидает именно то исключение которое вы процитировали).
1
 Аватар для F&D
74 / 31 / 2
Регистрация: 25.05.2010
Сообщений: 218
04.04.2012, 14:35  [ТС]
Цитата Сообщение от ForEveR Посмотреть сообщение
http://msdn.microsoft.com/en-u... ction.aspx

Нет у него индексатора. Есть свойство Item(int) - работающее как индексатор.
Нет. Лгу. Есть у него индексатор. Видимо просто у вас SelectedItems - пустой SelectedListViewItemCollection, ибо там идет проверка на то возможен ли вообще выбор, и каков переданный индекс (если < 0 или >= размеру ListView.SelectedIndices тогда кидает именно то исключение которое вы процитировали).
Таак. Это понял, но как теперь исправить?
0
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
04.04.2012, 14:42
C#
1
2
if (listView1.SelectedItems.Count == 1)
    myPath += listView1.SelectedItems[0].Text + "/";
1
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.04.2012, 14:43
F&D, Проверить Count SelectedItems... Я так понимаю у вас ничего не выбрано в вашем ListView.
0
 Аватар для F&D
74 / 31 / 2
Регистрация: 25.05.2010
Сообщений: 218
04.04.2012, 14:45  [ТС]
Цитата Сообщение от Konctantin Посмотреть сообщение
C#
1
2
if (listView1.SelectedItems.Count == 1)
    myPath += listView1.SelectedItems[0].Text + "/";

Другая ошибка:
Путь UNC должен иметь вид \\server\share.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.04.2012, 14:48
F&D, Путь пришел пустой - вот вы и полетели.
1
 Аватар для F&D
74 / 31 / 2
Регистрация: 25.05.2010
Сообщений: 218
04.04.2012, 14:51  [ТС]
Цитата Сообщение от ForEveR Посмотреть сообщение
F&D, Путь пришел пустой - вот вы и полетели.
Тогда следующие, два вопроса к вам, если можно.

1. Как сделать путь "не пустым"?
2. Как выделить строку, чтобы не конкретно только на названии нажимать надо было, а в любом месте строки?
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.04.2012, 14:53
F&D, Путь не пустой будет в том и только том случае, если не пустой listView1.SelectedItems.
Ну и да. Там лучше ставить в условии не == 1, а != 0.
1
 Аватар для F&D
74 / 31 / 2
Регистрация: 25.05.2010
Сообщений: 218
04.04.2012, 15:08  [ТС]
Цитата Сообщение от ForEveR Посмотреть сообщение
F&D, Путь не пустой будет в том и только том случае, если не пустой listView1.SelectedItems.
Ну и да. Там лучше ставить в условии не == 1, а != 0.
Я запутался

Что мне нужно сейчас сделать, чтобы это все сделать. Чтобы переходить по папкам и выделять строку, чтобы в любом месте нажатия на строку, переходить в папку.


P.S. Поставил !=0, в принципе наверное, вряд ли бы что-то изменилось, ошибка та же.
P.S.1 Не могу понять, как определить пустой ли listView1.SelectedItems?
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.04.2012, 15:17
F&D, Да собственно listView1.Count возвращает кол-во элементов - очевидно, что если вернулось 0 - то он пустой)
1
 Аватар для F&D
74 / 31 / 2
Регистрация: 25.05.2010
Сообщений: 218
04.04.2012, 15:28  [ТС]
Цитата Сообщение от ForEveR Посмотреть сообщение
F&D, Да собственно listView1.Count возвращает кол-во элементов - очевидно, что если вернулось 0 - то он пустой)
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.04.2012, 15:42
F&D, Как listView строится?
0
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
04.04.2012, 15:44
Ну и да. Там лучше ставить в условии не == 1, а != 0.
да? вы уверены?, а если будет выбрано к примеру 2 строки? в данном случае это не решает проблемы...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.04.2012, 15:44
Помогаю со студенческими работами здесь

Добавляю модуль JL VK GROUP, а при переходе в Расширения - Менеджер модулей его нету(
Добавляю модуль JL VK GROUP, а при переходе в Расширения - Менеджер модулей его нет(:rtfm:

Возникли ошибки при переходе на php7
Добрый день уважаемые, подскажите пожалуйста, что не так или хотя бы направление укажите, куда смотреть, но лучше с примером) В общем,...

Ошибки при переходе с локального сервера на онлайн
На локалке всё работало отлично, начал заливать на фтп, начались ошибки, помогите пожалуйста &lt;?php include_once...

Ошибки при переходе на новую версию РНР
На Хостинге которым пользуюсь изменили версию PHP до 5.5... перед этим стояла 5.3 если не ошибаюсь. После этого на сайте стали выскакивать...

Разработать простейший удаленный менеджер...
Помогите разработать на Microsoft Visual С++/C# простейший удаленный менеджер (дистанционное удаление, копирование и переименование файлов)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru