[erledigt] Dateiinformationen auslesen

Status
Nicht offen für weitere Antworten.

donatello

Mitglied
hallo erstmal,

hätte da eine frage: ist es möglich, informationen aus einer datei auszulesen, sprich
- erstelldatum
- letztes änderungsdatum,
- besitzer / ersteller
- attribute / berechtigungen

wenn ja, bitte wie? änderungsdatum ist mir klar, aber besitzer und attribute?

hab im internet die komponente javax.jifi gefunden, kann mit dieser aber leider nichts anfangen 🙁

mfg, donatello
 
Nein, ist nicht möglich 🙂

Halt rein mit Java net so, da das systemspezifische Dinge sind und net allg. überall existieren!

Müsstest dich mit dir (in windows) und ls (in linux) befehlen spielen und die Ergebnisse zurückparsen!!
 
danke erstmal ...

hmm => dafür reichen die kenntnisse nun doch nicht aus 🙁
wie führe ich einen sys-befehl aus und speichere die ergebnisse ab?

findet man das hier bereits im forum?

mfg donatello


[edit] ok, hab jetzt das hier gefunden:
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html#exec(java.lang.String)
nur wie's aussieht, kann man nur einen befehl ausführen, geh ich recht davon aus in der annahme dass ich das ergebnis pipen müsste und dieses ergebnis dann einlesen muss?



[edit2] hmm, das funktioniert aber nicht?
Runtime.getRuntime().exec("dir C:\\Test.txt /T C > test2.txt");
syntaxmäßig eigentlich korrekt, auch der dos befehl ist ok, nur wird keine file erstellt ?!?
 
du musst in windows

cmd /c \"dir C:\\test...... \"


Starten, da dir kein Befehl alleine ist, sondern in der cmd existiert 😉


Sprich so

Runtime.getRuntime().exec("cmd /c \"dir C:\\test.txt /T C > test2.txt\"");
 
aha 🙂

und wie läuft der befehl dann unter linux?
ich schätz mal dass /c irgendein parameter zum starten der konsole ist?
 
Code:
public static void main(String args[]) {
      String text ="";    // Lesepuffer
      // Stream zum Einlesen der Prozeßausgabe
      BufferedReader in;
      PrintWriter out = new PrintWriter(System.out);
      try {
        // Prozeß anlegen
        Process p =
              Runtime.getRuntime().exec("/bin/ls -l");
        // Eingabestream holen
        in = new BufferedReader(
           new InputStreamReader(p.getInputStream()));
        // Alle Zeichen aus dem Stream auslesen und
        // auf der Standardausgabe ausgeben
        while ((text = in.readLine()) != null) {
          out.println(text); out.flush();
        }
      }
      catch (IOException e) {
        e.printStackTrace();
      }
    }
 
cool danke 🙂

[edit] hmm, ich seh gerade dass man mit dir * /T C nicht das erstelldatum anzeigen kann, obwohls in der hilfe so steht?!? der zeigt immer nur das letzte änderungsdatum - is jetzt aber nicht mehr java ???:L
 
In Linux heißt der Befehl

konsole /e

statt cmd /c

Und ob das dir die gleichen Befehle hat und das gleiche zurückbringt ist ne andere Frage!

Vorallem mal, da linux nur 1 Datum beim File kennt und net 3!
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben