I created a function which checks for file/dir access rights. Locally it is very fast. Over network it's consuming ~ 1 sec. Is there any faster way to get them? Maybe with a FileObject?
Restriction: it has to work on network drives of Win, Win Server, NAS and Linux-Server and should be error proof.
Here is my code:
Code: Select all
Check_Rights(ByRef Dir)
{
if(InStr( FileExist(Dir), "D" )=0)
return "dir not exist"
Random, tmp, 0, 99
File_Write_Test := Dir "\" A_UserName A_TickCount tmp ".ini"
Loop, 50
{
FileAppend, 0, % File_Write_Test
if(ErrorLevel)
{
if(A_Index = 50)
return "no write"
else
Sleep, 100
}
else
break
}
Loop, 50
{
FileAppend, 0, % File_Write_Test
if(ErrorLevel)
{
if(A_Index = 50)
return "no change"
else
Sleep, 100
}
else
break
}
Loop, 50
{
FileDelete, % File_Write_Test "*"
if(ErrorLevel)
{
if(A_Index = 50)
return "no delete"
else
Sleep, 100
}
else
break
}
return "ok"
}