Benennen Sie eine Datei im internen Speicher um

8

Was ist der beste / einfachste Weg, um eine Datei im internen Speicher der Anwendung umzubenennen? Ich finde es etwas komisch, dass es eine Context.deleteFile() Methode gibt, aber keine "move" oder "rename" Funktion. Muss ich den gesamten Inhalt der Datei speichern, löschen, neu erstellen und dann den Inhalt kopieren? Oder gibt es eine Möglichkeit, eine Datei über eine vorhandene Datei zu kopieren?

Update (30. August 2012):

Nach der unten vorgeschlagenen Lösung, an die ich nicht arbeiten kann:

  • Ich habe eine Datei namens shoppinglists.csv
  • Dann erstelle ich eine neue Datei namens shoppinglists.tmp und kopiere den Inhalt von shoppinglists.csv UND einige neue Einträge in diesen. Die Datei shoppinglist.tmp ist dann eine neue Version der Datei shoppinglists.csv
  • Dann lösche ich die alte shoppinglists.csv-Datei
  • Dann muss ich die Datei shoppinglists.tmp in shoppinglists.csv
  • umbenennen

Ich habe es versucht:

%Vor%

Dies funktioniert jedoch nicht. Nach deleteFile () passiert nichts mehr, und mir bleibt die neue shoppinglists.tmp-Datei.

Was vermisse ich?

NB: Es gibt keine Fehler oder irgendetwas in LogCat.

    
Brian Tompsett - 汤莱恩 29.08.2012, 15:25
quelle

5 Antworten

0

renameTO () funktioniert nicht in meiner Umgebung (Eclipse Indigo, AVD mit Android Version 2.3). Die Lösung besteht darin, die temporäre Dateimethode alltoger zu überspringen, da es nicht möglich ist, sie in einem vernünftigen Zeitrahmen zu lösen.

    
user1341676 31.08.2012, 09:17
quelle
5

Anstatt einen rohen File -Konstruktor zu verwenden, verwenden Sie die Methode getFileStreamPath von Context . Das heißt:

%Vor%     
JulianSymes 26.11.2012 13:38
quelle
0

Sie müssen die Methode renameTo() der Dateiklasse verwenden.

%Vor%     
Lucifer 29.08.2012 15:34
quelle
0

Ich denke, wir können die File.renameTo () -Methode nicht in der internen Speicherumgebung verwenden. Umbenennen einer Datei in dieser Umgebung, kann: - Kopieren Sie den Inhalt der alten Datei in eine neue Datei. - Löschen Sie die alte Datei.

    
TNLong 24.01.2014 02:53
quelle
0
%Vor%     
Yogesh Rathi 18.02.2016 16:18
quelle