Wie man die Datei-Berechtigung-Modus programmgesteuert in Java
Ich weiß, es ist möglich, ändern Sie die Berechtigung Modus einer Datei:
Runtime.getRuntime().exec( "chmod 777 myfile" );
.
Diesem Beispiel legt die Berechtigungs-bits auf 777
. Ist es möglich, die Berechtigungs-bits auf 777
programmatisch mit Java? Kann dies getan werden, um jede Datei?
- Vielleicht finden Sie einige Ideen in diesem Beitrag ? : stackoverflow.com/questions/664432/...
- Intern Android verwendet die
android.os.FileUtils
die, wie üblich, versteckt von der SDK. Sie können jedoch den Zugriff auf Reflexion, wenn Sie nicht möchten, rufen Sie#exec(..)
.
InformationsquelleAutor Sathish Sathish | 2012-07-10
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mittels chmod in Android
Java nicht native Unterstützung für Plattform-abhängigen Vorgänge wie chmod. Jedoch, Android-Dienstprogramme für einige dieser Tätigkeiten, die über android.os.FileUtils. Die FileUtils-Klasse ist nicht Teil der öffentlichen SDK und wird daher nicht unterstützt. So, verwenden Sie diese auf eigene Gefahr:
Referenz : http://www.damonkohler.com/2010/05/using-chmod-in-android.html?showComment=1341900716400#c4186506545056003185
Android machen es schwierig für die Interaktion mit anderen Anwendungen und Ihre Daten, außer durch Intents. Absichten nicht für Berechtigungen, da Sie abhängig von der Anwendung empfangen der Absicht zu tun/geben, was Sie wollen, Sie wahrscheinlich waren nicht entworfen, um jemandem Ihre Dateien Berechtigungen. Es gibt Möglichkeiten, um es, aber nur, wenn die Anwendungen sind desgned zu arbeiten in der gleichen JVM.
Also jede Anwendung kann nur ändern Sie die Datei. für mehr detail in der Datei-Berechtigung finden Sie unter http://docs.oracle.com/javase/1.4.2/docs/guide/security/permissions.html
So kommentiert zuvor,
android.os.FileUtils
geändert hat und die Lösung geschrieben von Ashraf nicht mehr funktioniert. Die folgende Methode sollte auf allen Versionen von Android (obwohl es keine reflektion verwenden, und wenn ein Hersteller änderungen funktioniert dies nicht).Sollten Sie natürlich eigene der Datei, damit alle änderungen an Berechtigungen.
Hier ist eine Lösung mit Apache Commons.IO FileUtils, und die entsprechenden Methoden auf Datei Objekte.
Dies ist das äquivalent von
chmod -R 0777 /some/path
. Passen Sie dieset{Read,Writ,Execut}able
Aufrufe implementieren, die anderen Modi. (Ich werde gerne aktualisieren diese Antwort, wenn jemand Beiträge entsprechenden code, dies zu tun.)