2012-04-24 2 views
0

Я пробовал этот синтаксис, но почему это не сработало?Как использовать java native (cacls) для разрешения разрешения на изменение в окнах

Я действительно рад за ваш совет.

спасибо прежде. Извините за плохой английский.

package priviledge;

import java.io.File; import java.io.IOException;

/** * * @author DINA */ public class Main {

/** * @param args the command line arguments */ public static void main(String[] args) throws InterruptedException, IOException { File f = new File("C:/lala/images1.jpg"); permission(f); } public static void permission(File src) throws InterruptedException, IOException { // win32 command line variant Process p = Runtime.getRuntime().exec("cacls 000 " + src.getPath()); p.waitFor(); // p.waitFor()
+1

Что случилось? Что ты получил? – MByD

+0

Я хочу, чтобы этот синтаксис мог изменить разрешение файла как упоминание об этом синтаксисе. –

+0

ничего не получаю. когда я проверяю файл (images1.jpg) в проводнике Windows, разрешение файла не работает. –

ответ

1

Поскольку cacls работает иначе chmod. В частности, первым аргументом является имя файла (это означает, что вы попытаетесь сделать это в файле с именем 000). Windows, использующая ACL, далее компилирует вещи, поскольку они не подходят так же хорошо, как три восьмеричные числа.

Просмотрите документацию cacls (просто введите его в командной строке) и исправьте свою командную строку.

+0

Я сделал это, но я не могу понять о помощи cacls в commandprompt. если я хочу изменить разрешение файла для группы, что я должен ввести в java-код? –

1

для CACLS группа такая же, как пользователь, так, например, для предоставления полного доступа к группе ABC вы должны ввести «CACLS имя файла/г ABC: F» Вы можете просмотреть более подробную информацию о документации CACLS

+0

имя файла должно заканчиваться его путем? –

+0

да как еще один пример сделать 'cacls C: \ lala \ images1.jpg/E/g ABC: R вы пишете' Runtime.getRuntime(). Exec ("cacls" + src.getPath() + "/ E/g ABC: R ");' – msam

+0

ОК, я попробую. Благодарю. –

0

Я также работал над проектом, который включает изменение разрешений папки. Я пробовал много методов, но не работал так, как я ожидал. Итак, я придумал новую идею. Для этого вам нужно базовые знания о пакетных файлах,

Я хотел изменить разрешение папки, Так вот что я сделал:

создал текстовый файл, писал команды в этом файле, преобразовали его в пакетный файл, и выполнил его с помощью:

File file = new File("server.bat"); 
 
    Desktop.getDesktop().open(file);

(Работает на Java 1.6 или более поздней версии), Удаляется этот пакетный файл.

Это может быть долгий путь, но в этом методе можно выполнить любое количество команд за один снимок. С помощью этого метода вам не нужно беспокоиться о рабочем каталоге, так как вы можете его изменить в пакетном файле. Это может быть плохая идея, я новичок в java, но я сказал вам свою идею.

+0

Я не вижу, как это отвечает Q вообще. – xlm

 Смежные вопросы

  • Нет связанных вопросов^_^