Ordnerrechte / Zugriffsrechte mit Java ändern?

Status
Nicht offen für weitere Antworten.

alphaChill

Aktives Mitglied
Hallo

gibt es eine Möglichkeit die Rechte mit Java an Ordner zu vergeben?

Hätter gern, dass ein Ordner (und dessen Inhalt) nur von einem Programm geändert und glöscht werden kann (also für den User "Read-Only"). Kann das Java? Wenn ja, welches Paket beinhaltet diese Funktion? (Wenn ihr mir dann noch die Klasse und die Methode nenne könnt, erspart ihr mir Sucharbeit :) )

Wenn nicht, kann ich etwas mit
Code:
Process proc = Runtime.getRuntime().exec(...);
unter Windows tricksen?
 

Wildcard

Top Contributor
Dieses Schreibgeschützt Flag unter Windows ist kein Zugriffschutz sondern eine Art Hint.
User startet ein Programm -> Programm schreibt Datei mit den Rechten des Users -> Datei gehört User
Diese Rechte lassen sich mit den entsprechenden Programmen des Betriebssystems allerdings nachträglich ändern.
Unix zB chmod/chown/...
 

alphaChill

Aktives Mitglied
@ Wildecard: Jo, unter Unix und Linux-Betriebsystemen sind mir die Befehle bekannt, nur schade, dass es soetwas nicht unter Windows gibt...

@ Ebenius: Danke für den Tipp... mit "setWritable" (false) und "setReadable" (true) kann ich leider "nur" verhindern, dass man die entsprechende Datei abändern kann, allerdings kann man das Löschen der Datei dadurch nicht verhindern :(

Aber sowie ich das Wildecard erklärt hat, wird es wohl keine Möglichkeit unter Windows geben, da etwas zu machen, wenn das Programm dem User gehört und das Programm mit "Userrechten" arbeitet.

Kann man wenigestens irgendwie prüfen, ob ein bestimmter Ordner geöffnet ist, dass man dann eine Meldung rausgibt, die einem vor dem Abändern der Dateien in diesem Ordner warnt?
'ne Klasse "Folder" und die Methode "isOpen()" wäre in dem Fall hilfreich :lol: scheint es nur im Java-io-Paket nicht zu geben :( wäre ja wahrscheinlich auch zu einfach gewesen...
 

Wildcard

Top Contributor
Vista hat doch eine rudimentäre Rechteverwaltung. Sollte doch auch ein Programm geben um die Rechte zu ändern.

Kann man wenigestens irgendwie prüfen, ob ein bestimmter Ordner geöffnet ist, dass man dann eine Meldung rausgibt, die einem vor dem Abändern der Dateien in diesem Ordner warnt?
Verzeichnisse sind nicht offen oder geschlossen. Ein solcher Zustand existiert nicht.
 

Saxony

Top Contributor
Wildcard hat gesagt.:
Verzeichnisse sind nicht offen oder geschlossen. Ein solcher Zustand existiert nicht.

Zumindest scheint es aber den Zustand der Verwendung zu geben.

c:\mkdir "neuer Ordner"

c:\cd "neuer Ordner"

c:\neuer Ordner\

So und jetzt mal versuchen vom WindowsExplorer aus c:\neuer Ordner\ zu löschen. Die Frage ist nur ob man mit JavaBordMitteln an diesen Status ran kommt - ich habe davon jedenfalls noch nichts gehört.

Eine unbefriedigende Lösung ist mittel C/C++, WinAPI und JNI realisierbar. Müsste aber dann entweder nur auf Win laufen oder für jedes OS ne JNI Implementierung coden.

bye Saxony
 

alphaChill

Aktives Mitglied
@ Wildcard: Danke für die Info, aber ich versuch Vista weitestgehend aus dem Weg zu gehen, allein schon mal aus dem Grund, dass alleine das Betriebsystem meinen Rechner völlig in die Knie zwingen würde, aber gut das ist ein anderes Thema ;-)

@Saxony: C++ habe ich zwar schon erste Schritte gemacht, aber ich denke bis ich das hinbekommen würde, würde einige Zeit vergehen, mal sehen...

Mir ist allerdings noch etwas anderes eingefallen: Wenn es schon nicht die Zustände "Offen" und "Geschlossen" gibt, kann man ggf. prüfen ob ein Ordner aufgerufen wurde? Oder, dass man ein Programm mit einem Ordner verknüpft, so dass man den Ordner und ein Programm mit einem (Doppelt-)Klick ausfürht.
 

Saxony

Top Contributor
alphaChill hat gesagt.:
Mir ist allerdings noch etwas anderes eingefallen: Wenn es schon nicht die Zustände "Offen" und "Geschlossen" gibt, kann man ggf. prüfen ob ein Ordner aufgerufen wurde? Oder, dass man ein Programm mit einem Ordner verknüpft, so dass man den Ordner und ein Programm mit einem (Doppelt-)Klick ausfürht.

Ja das ist genau das, was ich mit dem Zustand der Verwendung meinte. Jetzt ist natürlich die Frage woher soll deine JavaApp wissen, dass zum Beispiel MS Word gerade in diesem Ordner ein Dokument offen hat bzw. es für die 34324324 Temp Files für jedes offene Doc braucht. Daher der Vorschlag über WinAPI, der WindowsExplorer findet nämlich auch raus, wenn der Ordner anderswo noch verwendet/offen ist:

WindowsExplorer hat gesagt.:
Fehler beim Löschen der Datei oder des Ordners

Der Ordner "neuer Ordner" kann nicht entfernt werden: Die Datei wird von einer andeen Person bzw. einem anderen Programm verwendet.
Schließen Sie alle Programme, die die Datei eventuell verwenden können, und wiederholen Sie den Vorgang.

Daher muss dieser Status eines Ordner/Datei prüfbar sein, aber halt nicht dirket aus Java raus.

bye Saxony
 

Saxony

Top Contributor
So ich nochmal ;)

Mir kam gerade folgende Idee:

Wir überlassen einfach die Prüfung weiterhin dem OS.

Dazu folgendes Vorgehen. Den kompletten Inhalt des Ordners temporär wegspeichern. Dann den Inhalt rekursiv löschen. Danahc versuchen über File#delete den Ordner zu löschen. Dies kann eine SecurityException werfen und nebenbei liefert delete selber noch true oder false zurück.

Ließ sich also der Ordner löschen (true) dann benutzt ihn niemand/irgendwas anderes. Dann Ordner wieder Erstellen, Inhalt aus temp zurückschreiben und temp löschen. Ließ er sich nicht löschen bzw. trat schon bei der rekursiven Entfernung des Inhalts ein Fehler auf dann ist er in Verwendung. Dann den bisherigen temp Inhalt zurückschreiben und temp löschen.

Tja aber wenn du es so machst, darfst du dann auch niemanden mehr den Code zeigen. :D Von der Performance sprech ich lieber gar nicht erst. *hehe*

bye Saxony
 

alphaChill

Aktives Mitglied
Bisher sollen nur ein paar KB-Dateien kopiert werden, daher sollte die Performance (hoffentlich) nicht allzu sehr leiden, aber mal gucken. Die Idee ansich finde ich nicht schlecht, danke :)

Saxony hat gesagt.:
Tja aber wenn du es so machst, darfst du dann auch niemanden mehr den Code zeigen. :D
Solange mich keiner sieht, passt das schon :D
Sonst kann ich immer noch behaupten, dass es deine Idee war :lol:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Best Practice Java Zugriffsrechte Problem Allgemeine Java-Themen 2
P Applet-Zugriffsrechte: merkwürdiges Verhalten Allgemeine Java-Themen 4
T Klassen in Klassen => Zugriffsrechte? Allgemeine Java-Themen 6
M Zugriffsrechte be-stimmen? Allgemeine Java-Themen 2
R Zugriffsrechte abfragen Allgemeine Java-Themen 2
G Datei Zugriffsrechte prüfen Allgemeine Java-Themen 2
OnDemand Java Deployment Vaadin Allgemeine Java-Themen 3
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
N LlaMA, KI, java-llama.cpp Allgemeine Java-Themen 39
V Java-Codierungsherausforderung: Navigieren durch die Macken der Datumsmanipulation Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
M java: unexpected type Allgemeine Java-Themen 2
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
KonradN Java 21 Release Allgemeine Java-Themen 5
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
K Java Anwendung machen Anleitung Allgemeine Java-Themen 5
G java.io.listFiles() Allgemeine Java-Themen 3
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
rode45e Java Threads Allgemeine Java-Themen 4
G java.io.listFiles() Allgemeine Java-Themen 2
N Java Dynamic Proxy Allgemeine Java-Themen 3
N Leichte Java Gegner Ki Allgemeine Java-Themen 10
A Java modul Problem Allgemeine Java-Themen 4
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
KonradN Java 20 am 21. März Allgemeine Java-Themen 1
O Java Website Stock Bot Allgemeine Java-Themen 3
J Front-/Backend in Java Allgemeine Java-Themen 14
doopexxx JAVA Google Webcrawler Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
G java.lang.NoClassDefFoundError: org/aspectj/lang/Signature Allgemeine Java-Themen 2
lalex1491 Java Aktienkurse nachfragen Allgemeine Java-Themen 4
J Class to link Java Allgemeine Java-Themen 4
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
mrStudent Inferenz JAVA Allgemeine Java-Themen 6
U URI Rechner (Java Script) Allgemeine Java-Themen 7
TheSkyRider Java Geburtsdatum Textfeld Allgemeine Java-Themen 7
mihe7 Java 19 JavaDocs: Browserintegration Allgemeine Java-Themen 0
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
H Java Rechner Programmierung der Mathematik Allgemeine Java-Themen 33
Lennox Schinkel Java Kara Auf einen Java Host laufen lassen Allgemeine Java-Themen 17
C Fußnoten von DocX mit Java Allgemeine Java-Themen 2
C Fußnoten in DocX mit Java Allgemeine Java-Themen 1
M Aussagenlogik in Java Programmieren Allgemeine Java-Themen 22
B Per Java Word Dokument schreiben? Allgemeine Java-Themen 8
krgewb Java-Bibliothek für ONVIF Allgemeine Java-Themen 1
KonradN Oracle übergibt (Java Teile der) GraalVM Community Edition an OpenJDK Community Allgemeine Java-Themen 2
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
B Java mit command line und jars benutzen? Allgemeine Java-Themen 18
M Java Überprüfen ob .exe-Datei bereits ausgeführt wird Allgemeine Java-Themen 2
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
Mick P. F. Wie kriege ich die Fehlermeldung "java: symbol lookup error: ..." weg? Allgemeine Java-Themen 11
K Nachhilfe Java Allgemeine Java-Themen 11
KonradN Java 19 Allgemeine Java-Themen 11
F IDEA IntelliJ Java Songliste erstellen Allgemeine Java-Themen 6
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
Sachinbhatt Sind alle Methoden in Java implizit virtuell Allgemeine Java-Themen 2
E Java und integrierte Grafikkarten Allgemeine Java-Themen 18
Sachinbhatt Wie wird die Typumwandlung bei Mehrfachvererbung in Java implementiert? Allgemeine Java-Themen 3
Peterw73 Hilfe bei Java gesucht Allgemeine Java-Themen 3
A Java unter Win 10 Allgemeine Java-Themen 1
B Woher kommen die Bildschirmkoordinaten beim java Robot? Allgemeine Java-Themen 14
P9cman java.Lang Klassen fehlen in JRE System Library Allgemeine Java-Themen 1
T Java Robot Class - Bot Allgemeine Java-Themen 3
E Wie Java Heap Space vergrößern? Allgemeine Java-Themen 3
B Java Programm auf virutellem Desktop laufen lassen? Allgemeine Java-Themen 1
D VBA Code mit Java ausführen möglich? Allgemeine Java-Themen 10
berserkerdq2 Threads, wie genau läuft das in Java ab? (Ich kann Threads erstellen und nutzen, nur das Verständnis) Allgemeine Java-Themen 6
izoards Java Home Pfad unabhängig von der Version Allgemeine Java-Themen 7
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
KonradN CVE-2022-21449: Fehler in Java bei Signaturprüfung Allgemeine Java-Themen 20
berserkerdq2 Java sql Allgemeine Java-Themen 15
JordenJost Unverständlicher Java code? Allgemeine Java-Themen 21
LimDul XSD To Java - Überschreiben von Assoziationen Allgemeine Java-Themen 1
Aartiyadav Comparisons and Swapa in Bubble-sort Java Allgemeine Java-Themen 6
KonradN Java 18 Allgemeine Java-Themen 8
N Statistische Auswertung von Logfiles (Einlesen, auswerten und grafische Aufbereitung von logfiles) mit Java Allgemeine Java-Themen 9
ME2002 Fragen aus einer Java Klausur Allgemeine Java-Themen 67
Z Mit Java 8+ Streams Zeilen nummern zu Zeilen hinzufügen Allgemeine Java-Themen 17
M Verständnisfrage java.util.TimerTask Allgemeine Java-Themen 2
V Hilfe mit Java Code Allgemeine Java-Themen 4
S Processing Java Code verstehen Allgemeine Java-Themen 4
O Newton Algorithmus Java Allgemeine Java-Themen 1
P Java Quellen finden Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben