I'm looking for the simplest way to test if a file is writeable, and if it is read-only to change its access permissions to make it writeable.
Any suggestions or pointers in the right direction are welcome!
There are many reasons that a file may not be writeable, for example:
You can check for some of those, but the only way to test for sure is to actually try to open the file for writing.
You can use the GetAttr and SetAttr functions to look for and change the read-only flag.
Some reasons for a file not being writeable can not be fixed at all (like a file on a CD-ROM), or can't be fixed from your program. If the user account doesn't have write permission to the file, it's unlikely that it has permission to change the permissions...
Using GetAttr and SetAttr
Dim attributes As VbFileAttribute
attributes = GetAttr("C:\foo.txt")
If (attributes And vbReadOnly) Then
attributes = attributes - vbReadOnly
SetAttr "C:\foo.txt", attributes
End If
Using the FileSystemObject (requires a project reference to the Microsoft Scripting Runtime)
Dim fso As New FileSystemObject
Dim fil As File
Set fil = fso.GetFile("C:\foo.txt")
If (fil.attributes And ReadOnly) Then
fil.attributes = fil.attributes - ReadOnly
End If
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With