If GetAttr(strPath) = vbReadOnly + vbArchive Or _ GetAttr(strPath) = vbReadOnly Then MsgBox "Filen er skrivebeskyttet." Else MsgBox "Filen er ikke skrivebeskyttet." End If End Sub
Private Declare Function GetFileAttributes Lib "kernel32" _ Alias "GetFileAttributesA" ( _ ByVal lpFileName As String) As Long
' vbNormal 0 Normal (default for Dir and SetAttr) ' vbReadOnly 1 Read-only ' vbHidden 2 Hidden ' vbSystem 4 System file ' vbVolume 8 Volume label ' vbDirectory 16 Directory or folder ' vbArchive 32 File has changed since last backup
Private Sub Form_Load() Dim strPath As String Dim lngRet As Long strPath = "C:\filenavn.xxx"
lngRet = GetFileAttributes(strPath) If lngRet <> INVALID_HANDLE_VALUE Then Select Case lngRet Case 1, 3, 5, 33, 35, 37 ' vbReadOnly = 1 ' vbReadOnly + vbHidden = 3 ' vbReadOnly + vbSystem = 5 ' vbReadOnly + vbArchive = 33 ' vbReadOnly + vbArchive + vbHidden = 35 ' vbReadOnly + vbArchive + vbSystem = 37 MsgBox "Filen er skrivebeskyttet." Case Else MsgBox "Filen er ikke skrivebeskyttet." End Select Else MsgBox "Kan ikke finde filen." End If End Sub '----------------------------------- Form1 -----------------------------------
"hvis en file er arkiv kan den jo også være skrivebeskyttet ;)"
Ja - det kan den også hvis den er skjult, er en systemfil osv. Det jeg mener er, om "If GetAttr(strPath) = vbReadOnly" ikke er tilstrækkeligt til at bestemme om en fil er skrivebeskyttet?
Ja, men det jeg ikke forstod var hvorfor du i første omgang så kun tog "vbReadOnly + vbArchive" og "vbReadOnly" med, men ikke fx. "vbReadOnly + vbArchive + vbHidden" osv...
Ligemeget, tror alle fatter poienten nu, selv mig ;o)
Jeg skal starte med at beklage at jeg først nu vender tilbage, men har været udenbyes nogle dage.
Mange tak for Jeres gode forslag. Det er så absolut noget jeg kan bruge til noget kreativt... takker
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.