The DriveType property returns an integer whose value corresponds to one of the DriveType Constants listed below. Note that only an integer is returned; to use the names below they must be defined in your code.
0 = Unknown
1 = Removable
2 = Fixed
3 = Network
4 = CD-ROM
5 = RAM Disk
'---------------------------------------------------
'Локальная сеть
'---------------------------------------------------
Public Declare Function WNetAddConnection Lib "mpr.dll" _
Alias "WNetAddConnectionA" _
(ByVal lpszNetPath As String, _
ByVal lpszPassword As String, _
ByVal lpszLocalName As String) As Long
Public Declare Function WNetCancelConnection Lib "mpr.dll" _
Alias "WNetCancelConnectionA" _
(ByVal lpszName As String, _
ByVal bForce As Long) As Long
'------------------------------------------------------
'Константы
'------------------------------------------------------
'Public Const NO_ERROR = 0 ' dderror
Public Const WN_NO_ERROR = 0 'NO_ERROR
Public Const ERROR_BAD_USERNAME = 2202&
Public Const ERROR_INVALID_PASSWORD = 86&
Public Const WN_BAD_PASSWORD = ERROR_INVALID_PASSWORD
Public Const WN_BAD_USER = ERROR_BAD_USERNAME
'-----------------------------------------------------
Public Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Ошибка возможно возникает из-за того что нет доступа к етому самому сетевому диску.Но вот беда - если Path содержит сетевой путь, то первая строчка выдает ошибку.
Dex писал(а):Ошибка возможно возникает из-за того что нет доступа к етому самому сетевому диску.
то и работать всё будет. Я правда не знаю насчёт GetDriveName, но если указывать путь из переменной или ещё из чего-то то всё ок....если доступен диск...
Но когда пользователь выбирает папку в сети, как мне определить, можно ли писать в эту папку?
If fso.FolderExists("Путь к папке")=True Then
'Можно писать
Else
'Нельзя писать
End if
Alexanbar писал(а):Может быть просто считать атрибуты папки через тот же FSO, а затем определить, если среди них ReadOnly?
Dex писал(а):Тоесть ты имеешь ввиду что CD на сетевой папке?
то это уже не сетевая папка. Что-то я тебя не понимаю давайка заново и подробно, а то ты меня уже запутал сетевая папка или CD....сетевая папка - это папка на CD.
Dex писал(а):Во первых еслито это уже не сетевая папка. Что-то я тебя не понимаю давайка заново и подробно, а то ты меня уже запутал сетевая папка или CD....сетевая папка - это папка на CD.
Вывод значения в виде строки дает мне 16 для папки на HDD и 17 - на CD. Наверное, это отличие и заключается в атрибуте ReadOnly. Но хотелось бы поконкретнее. Может кто знает?
msgbox((attribute And vbReadOnly) > 0) 'Имеет ли файл аттрибут только для чтения
msgbox((attribute And vbDirectory) > 0) 'Является ли файл папкой
'... и так далее все константы содержатся в vbFileAttribute
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 180