Проверьте, является ли диск записываемой функцией Windows API
Здравствуйте, есть ли какая-либо функция Windows API, которая будет возвращать, если диск доступен для записи Иногда диск виден под дисками, но при попытке программной записи на него выдается сообщение об ошибке "msg box", которое останавливает приложение до тех пор, пока пользователь не нажмет кнопку "ОК". Есть ли встроенная функция, которая проверила бы, доступен ли для записи диск без раздражающего окна ошибки?
Я уже пробовал trycopy и возвращает ту же ошибку msgbox:(
Спасибо!
3 ответа
Попробуйте позвонить SetErrorMode( SEM_FAILCRITICALERRORS)
чтобы предотвратить появление сообщений об ошибках.
http://msdn.microsoft.com/en-us/library/ms680621(VS.85).aspx
Вы можете установить ссылку на Microsoft Scripting Runtime.
Затем вы можете использовать код как:
Dim FSO as New FileSystemObject
Dim clsDrive as Scripting.Drive
Set clsDrive=FSO.GetDrive("C")
Класс Drive имеет свойство FreeSpace, которое будет равно нулю, если диск недоступен для записи.
Кроме того, есть класс Scripting.Folder, который можно найти с помощью FSO.GetFolder(), который имеет свойство Attributes, которое состоит из флагов типа FileAttribute. Вы можете использовать код как
clsFolder.Attributes And FileAttribute.Readonly
проверить на ошибку... ReadOnlyness;-)
Вызовите GetVolumeInformation() и проверьте FILE_READ_ONLY_VOLUME
в возвращенном параметре flags.