Создаю временную папку, а затем попытаюсь изменить ее разрешение на моей машине с Windows 7. У меня есть привилегии администратора.Невозможно изменить разрешение папки с помощью java-кода
public class FilePermissionExample
{
public static void main(String[] args)
{
try {
File file = File.createTempFile("temp", Long.toString(System.nanoTime()));
file.delete();
file.mkdir();
if(file.exists()){
System.out.println("Is Execute allow : " + file.canExecute());
System.out.println("Is Write allow : " + file.canWrite());
System.out.println("Is Read allow : " + file.canRead());
}
file.setExecutable(false);
file.setReadable(false);
file.setWritable(false);
System.out.println("Is Execute allow : " + file.canExecute());
System.out.println("Is Write allow : " + file.canWrite());
System.out.println("Is Read allow : " + file.canRead());
if (file.createNewFile()){
System.out.println("File is created!");
}else{
System.out.println("File already exists.");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Выход:
ли Execute позволяет: правда
ЗАПИСИ позволяет: правда
читаются позволяют: правде
ли Execute позволяет: истинный
ЗАПИСЬ позволяет: правда
читается позволяют: true
Файл уже существует.
Ожидаемые:
ли Execute позволяет: правда
ЗАПИСИ позволяет: правда
читается позволяет: правде
ли Execute позволяет: ложные
ЗАПИСИ позволяют: ложные
читаются позволяют: ложные
Я столкнулся с подобной проблемой при написании теста на улей с использованием hiverunner в окнах. Может кто-нибудь что-то предложить?
Какие методы возврата устанавливаются в качестве исполняемых, setReadable и setWritable? Что произойдет, если вы удалите строку с помощью setExecutable? –
Все они возвращают логическое значение. «ложь» возвращается всеми сеттерами. Я не понимаю ваш второй вопрос. Методы тезисов берутся логически как аргументы, а не строки. Я не использовал строку – user2150837
Эти операции могут завершиться неудачно, если ОС не поддерживает работу.Я не знаю, поддерживает ли windows исполняемые файлы, поэтому я предложил, что это не поддерживает и setExecutable метод сбрасывает все три операции. –