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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2016, 14:31   #1
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию Как определить, что папка это подключенный логический диск

Есть определённая таблица Excel, которая ищет файлы на диске. Всё работает, за исключением ситуации когда VBA находит на диске папку например C:\KINGSTON32GB , а это смонтированная флешка (логический диск т.к. не хватает свободных букв в системе).
Поиск файлов реализован через FSO. Как можно определить, что текущая папка является таким смонтированным диском?
calypso вне форума Ответить с цитированием
Старый 26.09.2016, 15:06   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

хм... наверное, определить-то несложно,
вот только чтобы дать вам пример кода, это сначала надо протестировать
А с этим - проблема (как-то не хочется воссоздавать ситуацию на своем компе)

я вот никогда не сталкивался с ситуацией, когда буквы заканчиваются
не проще ли поотключать лишние подключенные диски, чтобы избежать проблемы?
EducatedFool вне форума Ответить с цитированием
Старый 26.09.2016, 15:13   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Нашёл:
Цитата:
Возвращаемое значение: число - определяет тип ресурса. Возможные значения:
0 - неизвестное устройство.
1 - устройство со сменным носителем.
2 - жёсткий диск.
3 - сетевой диск.
4 - CD-ROM.
5 - RAM-диск.
Код:
Sub test2()
    Dim FSO As New FileSystemObject
    If FSO.GetDrive("Z:").DriveType = 3 Then MsgBox "Сетевой диск"
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 26.09.2016, 15:21   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
я вот никогда не сталкивался с ситуацией, когда буквы заканчиваются
Игорь, у меня было однажды - я много распечатывал всякой ерунды и в принтере закончилась буква "В", так потом все слова без буквы "В" распечатывались!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 27.09.2016, 15:05   #5
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию

Цитата:
If FSO.GetDrive("Z:").DriveType = 3 Then MsgBox "Сетевой диск"
А NTFS папка разве монтируется как сетевой диск?
Вы не поняли наверно, я говорю что на локальном диске C: есть папка C:\blablabla, эта папка не содержит файлов, а является ссылкой на другой логический диск, которому не хватает буквы. Это называется монтирование тома "как папки"
calypso вне форума Ответить с цитированием
Старый 27.09.2016, 15:07   #6
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию

Почему VBA выдаёт ошибку при заходе внутрь такой "папки" я не знаю, проще поставить условие что если папка не физическая, а является ссылкой - то пропускать её.
calypso вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
надо при компиляции чтоб писало что это первая функция и что это вторая как сделать? Uourin Помощь студентам 0 18.05.2016 20:24
Узнать что это папка HTTqp Компоненты Delphi 2 11.04.2014 14:23
Диск D:\ как музыкальная папка ChukCha Свободное общение 17 27.03.2009 22:10
Как узнать из адреса файл это или папка? Anfall Общие вопросы Delphi 12 25.02.2009 23:40
Как по пути опредилить файл это или папка Anatol_rus Мультимедиа в Delphi 2 07.11.2008 11:51