Wie prüfen Sie die Verfügbarkeit von Speicherplatz auf externen Speicher?
Wie wollen Sie überprüfen, ob die SD-Karte voll ist oder nicht, so dass die Anwendung entscheiden kann, ob er weiterhin seine Arbeit zu tun, d.h. schreiben auf externe Speichermedien oder den Benutzer Benachrichtigen, dass der Speicher aus dem Raum laufen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Uhr mit StatFs & int-überlauf bei neueren Geräten
Den Ansatz in diese Antwort ist gebrochen, die auf Geräte mit großen externen Speicher.
Zum Beispiel auf meinem Nexus 7, die es derzeit gibt ~2 GB, wenn es in der Realität ist ~10 GB Speicherplatz.
StatFs hat Ersatz-Methoden zurückgeben
long
,getAvailableBlocksLong()
undgetBlockCountLong()
, aber das problem ist, dass Sie nur Hinzugefügt, in API-level 18.Diese stattdessen zu verwenden
Einfachsten ist die Verwendung
getFreeSpace()
in java.io.Datei, Hinzugefügt in der API-level 9, die zurücklong
:So, um freien Speicherplatz auf dem externen Speicher ("SD-Karte"):
Alternativ, wenn Sie wirklich verwenden möchten StatFs, brauchen aber die Unterstützung API-Ebene < 18, würde dieses Update der integer-überlauf:
int
s zulong
.Verwenden
StatFs
und pass den Pfad der externen Speicher Verzeichnis im Konstruktor, und Sie können die Funktionen aufrufen, wiegetAvailableBlocks()
undgetBlockSize()
auf dieStatFs
Objekt.Ich denke, man kann mit dieser Anweisung nicht mit deinem problem. diese kippe prüfen, ob oder nicht ausreichender Kapazität der SD-Karte.
Hier ist, wie man internen Speicher Größen:
Hier ist, wie Sie externe Speicher-Größen (SD-card-Größe):