检查驱动器是否是可写的Windows API函数

时间:2010-09-05 15:18:45

标签: windows api vb6 usb drives

Hello是否存在任何Windows API函数,如果驱动器可写,则会返回该函数。有时驱动器在驱动器下可见,但是当尝试以编程方式写入驱动器时,它会给出一个msg框错误,它会冻结应用程序,直到用户按下确定按钮。是否有内置函数可以检查驱动器是否可写而没有恼人的错误框?

我已尝试过trycopy并返回相同的msgbox错误:(

谢谢!

3 个答案:

答案 0 :(得分:2)

尝试调用SetErrorMode( SEM_FAILCRITICALERRORS)以防止错误消息框弹出。

http://msdn.microsoft.com/en-us/library/ms680621(VS.85).aspx

答案 1 :(得分:1)

您可以设置对Microsoft Scripting Runtime的引用。

然后您可以使用以下代码:

Dim FSO as New FileSystemObject
Dim clsDrive as Scripting.Drive

Set clsDrive=FSO.GetDrive("C")

Drive类有一个FreeSpace属性,如果驱动器不可写,它将为零。

此外,还有一个Scripting.Folder类可以通过使用具有Attributes属性的FSO.GetFolder()来实现,该属性由FileAttribute类型的标志组成。您可以使用

之类的代码

clsFolder.Attributes And FileAttribute.Readonly检查错误... ReadOnlyness; - )

答案 2 :(得分:0)

调用GetVolumeInformation()并在返回的flags参数中检查FILE_READ_ONLY_VOLUME