Controllare se l'unità è Windows scrivibile funzione API [chiusa]
Domanda
Ciao v'è alcuna funzione Windows API che sarebbe tornato se l'unità è scrivibile. Alcuni casi l'unità è visibile sotto le unità, ma quando si cerca di scrivere programaticly ad esso, ti dà un errore di scatola msg wich congela l'applicazione fino a quando l'utente preme il tasto OK. C'è un costruito in funzione che controlla se l'unità è scrivibile senza la finestra di errore fastidioso?
ho provato trycopy già e restituisce lo stesso errore msgbox: (
Grazie!
Soluzione
Prova a chiamare SetErrorMode( SEM_FAILCRITICALERRORS)
per evitare che i messageboxes errore da popping up.
http://msdn.microsoft.com/ it-it / library / ms680621 (VS.85) aspx
Altri suggerimenti
È possibile impostare un riferimento a Microsoft Scripting Runtime.
È quindi possibile utilizzare il codice:
Dim FSO as New FileSystemObject
Dim clsDrive as Scripting.Drive
Set clsDrive=FSO.GetDrive("C")
La classe di unità ha una proprietà FreeSpace, che sarà pari a zero se l'unità non è scrivibile.
Inoltre v'è una classe Scripting.Folder che si può het utilizzando FSO.GetFolder () che ha un Attributi proprietà, che si compone di bandiere di tipo FileAttribute. È possibile utilizzare il codice come
clsFolder.Attributes And FileAttribute.Readonly
per verificare err ... ReadOnlyness; -)
GetVolumeInformation () e controllo FILE_READ_ONLY_VOLUME
nel parametro flags restituito.