Frage

In meiner Android-App möchte ich eine schreibgeschützte Datei kopieren können und die neue Version auch schreibgeschützt haben.

Die Verwendung der setReadOnly () -Methode für die Zieldatei gibt nur false zurück, was anzeigt, dass sie fehlgeschlagen ist, und natürlich zeigt die Überprüfung der Datei selbst, dass das schreibgeschützte Attribut nicht festgelegt wurde.

--bearbeiten - Wie David Given unten vorschlägt, gilt dies nur für Dateien auf der SD-Karte.Interne Dateien verhalten sich mit setReadOnly () angemessen.

Meine Manifestdatei hat die Zeile<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> und ich kann in meiner App alle möglichen anderen Dateivorgänge erfolgreich ausführen.

Auf der Suche nach einer Lösung habe ich ein paar Leute gesehen, die Linux-Befehle verwendet haben, und sie haben gesagt, dass dies eine 'schmutzige' Methode ist. Gibt es also eine alternative 'saubere' Methode, die uns zur Verfügung steht?

Die App, die ich schreibe, verwendet Android 2.1, falls dies relevant ist.

War es hilfreich?

Lösung

Ich glaube nicht, dass die SD-Karte solche Dateiattribute unterstützt.Ich denke, Sie können Dateien nur im internen Speicher schreibgeschützt machen.(Weil die SD-Karte ein FAT-Dateisystem verwendet, der interne Speicher jedoch ein ordnungsgemäßes Linux-Dateisystem verwendet.)

Überprüfen Sie das Ergebnis von setReadOnly() und schau, ob es zurückkehrt true oder false.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top