Since you don't want to attempt writing to the folder, you could consider this approach.
You can put a try catch around this:
System.Security.AccessControl.DirectorySecurity ds = Directory.GetAccessControl(folderPath);
i.e.
public bool CanWriteToPath(string folderPath)
{
try
{
var ds = Directory.GetAccessControl(folderPath);
return true;
} catch (UnauthorizedAccessException)
{
return false;
}
}
It will only succeed if you have permissions.
Sorry that it still has to use a try/catch.