45 Stimmen

Wie man die Dateierweiterung auf Android überprüft

Wenn wir in meiner Anwendung die Dateien von der SD-Karte durchsuchen, handelt es sich bei den Dateien um .text, .jpg und mpeg4ie-Videodateien.

Ich möchte jeden Dateityp in einem bestimmten Ordner speichern. Textdateien werden zum Beispiel im Textordner gespeichert. Wie prüfe ich die Dateierweiterung, wenn ich die Datei auswähle?

66voto

Mike Lentini Punkte 1369

Ich würde den Dateinamen als String erhalten, ihn in ein Array mit "." als Trennzeichen aufteilen und dann den letzten Index des Arrays erhalten, der die Dateierweiterung sein würde. Zum Beispiel:

public class main {
    public static void main(String[] args) {
        String filename = "image.jpg";
        String filenameArray[] = filename.split("\\.");
        String extension = filenameArray[filenameArray.length-1];
        System.out.println(extension);
    }
}

Welche Ausgaben:

jpg

48voto

XXX Punkte 8832
public static String getFileExt(String fileName) {
    return fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length());
}

18voto

Pedro Punkte 227

Oder du könntest es einfach tun:

MimeTypeMap.getFileExtensionFromUrl(myfile.toURL().toString());

Hinweis: Diese Methode ist allerdings nicht sehr zuverlässig...

14voto

Phil Punkte 35009

Sie können verwenden DateinameUtils de Apache Commons :

String extension = FilenameUtils.getExtension(mFile.getName());

4voto

Matt Punkte 1299

Sie könnten auch etwas wie unten tun und endsWith verwenden.

public void walkdir(File dir) {
    String txtPattern = ".txt";
    String jpgPattern = ".jpg";
    String mp3Pattern = ".mp3";

    File listFile[] = dir.listFiles();

    if (listFile != null) {
        for (int i = 0; i < listFile.length; i++) {

            if (listFile[i].isDirectory()) {
                walkdir(listFile[i]);
            }
            else {
                if (listFile[i].getName().endsWith(txtPattern)){
                    // Put in txt folder

                } else if (listFile[i].getName().endsWith(jpgPattern.toLowerCase())){
                    // Put in jpg folder

                } else if (istFile[i].getName().endsWith(mp3Pattern.toLowerCase())) {
                    // Put in mp3 folder
                }
            }
        }
    }
}

Tut mir leid, ich habe die Arbeit nicht überprüft, aber sie sollte es für Sie tun.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X