update File::isWritable() to analyze parent directories