Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Права записи, вывод результата


Автор: Rulevoj 12.11.2010, 05:04
Вообщем нужно проверить несколько каталогов... к примеру:

./config/
./config/a
./config/b
./log/
./log/a


Вывести сообщения с типа:


...
./config/ >> 777 
...
./log/ >> 666
...


и если хоть на одном каталоге стоит chmod запрещающий запись то обрывать выполнение кода и сообщать об ошибке и наоборот если запись возможна т.е. 777 продолжать выполнение кода далее.... 


понимаю вопрос глупый права на localhost не нуждаются в проверке а на VDS к примеру их нужно проверить....

нашёл примерный код но как приминить не догоню....


Код

import java.io.File;

public class Main {
    public static void main(String[] args) {
        File file = new File(args[0]);
        System.out.println("exec:" + file.canExecute());
        System.out.println("read:" + file.canRead());
        System.out.println("write:" + file.canWrite());
      System.out.println(file.setLastModified(System.currentTimeMillis()));
    }
}


и там вывод прав в -rwxrwxrwx а мне нужно например в цифре: 777

Помогите пожалуйста кто может....

Автор: Skipy 12.11.2010, 10:07
Ничего не понял. там вывод прав в -rwxrwxrwx - где "там"? 

Вы цифры в буквы не можете перевести и назад? r=4, w=2, x=1. rwx = 4+2+1 = 7. 5 = 4 + 1 =r-x.

Автор: Rulevoj 12.11.2010, 22:51
попробую....

Автор: Rulevoj 16.11.2010, 12:02
ну я вот что нагородил.... Главное что работает))) 

Код



  //conf
        File file = new File("./config/");
         String ZZZ = "";
         //выполнение
         ZZZ = ZZZ + file.canExecute();
         //чтение
         ZZZ = ZZZ + file.canRead();
         //запись
         ZZZ = ZZZ + file.canWrite();
         //log
         File log = new File("./log/");
         String AAA = "";
         //выполнение
         AAA = AAA + log.canExecute();
         //чтение
         AAA = AAA + log.canRead();
         //запись
         AAA = AAA + log.canWrite();
         //ser
         File ser = new File("./config/services/");
         String KKK = "";
         //выполнение
         KKK = KKK + ser.canExecute();
         //чтение
         KKK = KKK + ser.canRead();
         //запись
         KKK = KKK + ser.canWrite();


         //config
         String XXX = "";
         XXX=ZZZ.replace("true","<TD><font color=\"green\">разрешено</font></TD>");
         XXX=XXX.replace("falce","<TD><font color=\"red\">запрещено</font></TD>");
         XXX=XXX.replace("rwx","<TD><font color=\"green\">7</font></TD>");
         //log
         String MMM = "";
         MMM=AAA.replace("true","<TD><font color=\"green\">разрешено</font></TD>");
         MMM=MMM.replace("falce","<TD><font color=\"red\">запрещено</font></TD>");
         MMM=MMM.replace("rwx","<TD><font color=\"green\">7</font></TD>");
         //ser
         String BBB = "";
         BBB=KKK.replace("true","<TD><font color=\"green\">разрешено</font></TD>");
         BBB=BBB.replace("falce","<TD><font color=\"red\">запрещено</font></TD>");
         BBB=BBB.replace("rwx","<TD><font color=\"green\">7</font></TD>");



        con.print("<TABLE BORDER=\"1\"><TR><TD>Каталог</TD>"
                + "<TD>Выполнение</TD>"
                + "<TD>Чтение</TD>"
                + "<TD>Запись</TD></TR>");

         con.print("<TR><TD>/config/</TD>"
                 + XXX +"</TR>");

         con.print("<TR><TD>/config/services/</TD>"
                 + BBB +"</TR>");

          con.print("<TR><TD>/log/</TD>"
                 + MMM +"</TR><TABLE>");



Только я не прашарил как будет правильно:

Код

File file = new File("./config/");
 
или
Код

File file = new File("./config");

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)