Das funktioniert bei mir:
public static String getExtension(String fileName) {
String encoded;
try { encoded = URLEncoder.encode(fileName, "UTF-8").replace("+", "%20"); }
catch(UnsupportedEncodingException e) { encoded = fileName; }
return MimeTypeMap.getFileExtensionFromUrl(encoded).toLowerCase();
}
Wenn die Datei /mnt/sdcard/boomerang/2013-06-18_12:08:53.txt
, "txt"
zurückgegeben wird.
Beachten Sie die URLEncoder.encode
y .repalce
Anrufe sollten alle Zuverlässigkeitsprobleme beheben, die auftreten können, wenn Sie MimeTypeMap.getFileExtensionFromUrl
von selbst aufgerufen wird. Ohne die Kodierungs- und Ersetzungsaufrufe würden zum Beispiel Dateinamen wie "Test Image!.jpg"
geben leere Zeichenketten zurück. Stellen Sie außerdem sicher, dass der Dateiname klein geschrieben wird. Es MimeTypeMap
scheint keine Einträge zu haben für .PNG
o .JPG
.