it-swarm.com.de

Welche Zeichen dürfen in Dateinamen unter Android verwendet werden?

Welche Sonderzeichen sind für Android-Dateinamen zulässig?

[email protected]#$%^&*()_+/\.,

Kann ich auch eine Datei mit dem Unicode-Namen speichern?

45
alex2k8
  1. Auf Android (zumindest standardmäßig) die als UTF-8 codierten Dateinamen.

  2. Offenbar hängen reservierte Dateinamenzeichen von dem Dateisystem ab ( http://en.wikipedia.org/wiki/Filename ).

Ich hielt es für reserviert:

private static final String ReservedChars = "|\\?*<\":>+[]/'";
35
alex2k8

Laut wiki und vorausgesetzt, Sie verwenden einen externen Datenspeicher mit FAT32.

Erlaubte Zeichen in Verzeichniseinträgen

sind

Jedes Byte außer den Werten 0-31, 127 (DEL) und: "* /: <>?\| +,.; = [] (Kleinbuchstaben a-z werden als A-Z gespeichert)

8
kreker
final String[] ReservedChars = {"|", "\\", "?", "*", "<", "\"", ":", ">"};

for(String c :ReservedChars){
    System.out.println(dd.indexOf(c));
    dd.indexOf(c);
}
5
Blackbern

Dies ist richtig InputFilter für Dateinamen in Android:

    InputFilter filter = new InputFilter()
    {
        public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) 
        { 
            if (source.length() < 1) return null;
            char last = source.charAt(source.length() - 1);
            String reservedChars = "?:\"*|/\\<>";
            if(reservedChars.indexOf(last) > -1) return source.subSequence(0, source.length() - 1);
            return null;
        }  
    };
4
Quark

Ich habe das schnell auf meinem Galaxy Note 8 auf Android 4.4.2 getestet. Die Standard-App "Meine Dateien" greift hilfreiche ungültige Zeichen ab, die wie folgt aussehen:

? : "* |/\ <>

Ich habe alle anderen Sonderzeichen in einen Dateinamen eingefügt und es wurde gespeichert. Dies ist möglicherweise nicht in allen Android-Versionen konsistent. Daher empfiehlt es sich, konservativ zu sein und sie durch ähnlich sinnvolle Zeichen zu ersetzen.

2
TopherC

Dies ist eindeutig vom Dateisystem und vom Android-Betriebssystem abhängig. Bei meinem oneplus/oxygenOS die einzigen Zeichen in der akzeptierten Antwort

private static final String ReservedChars = "|\\?*<\":>+[]/'";

dass ich keine Datei umbenennen konnte, waren/und *

Android-weit scheint jedoch die obige Liste sinnvoll zu sein.

0
marzetti