2011-11-11 4 views
2

Je suis en train de faire une application Android qui crée un nouveau fichier quand on appuie sur un bouton. J'utilise le code suivant:Le fichier est affiché comme un répertoire, pas un fichier?

File file = new File(Environment.getExternalStorageDirectory() 
     +File.separator 
     +"myDirectory" //folder name 
     +File.separator 
     +"myFile.png"); //file name 
file.mkdirs(); 

Cependant, myFile.png est effectivement affiché comme un répertoire et non un fichier .png.

Répondre

5

En raison de file.mkdirs();mkdirs() - est utilisé pour la fabrication de répertoire par le paramètre de l'objet fichier donné de nom de fichier, Si vous voulez créer un fichier de rendre le fonctionnement IO pour écrire dans un fichier,

Dans votre cas: à créer un répertoire,

File file = new File(Environment.getExternalStorageDirectory() 
    +File.separator 
    +"myDirectory" //folder name 
    +File.separator 
    +"myFile.png"); //file name 
    file.getParentFile().mkdirs(); 

Cela crée un dossier myDirectory dans un stockage externe.

2

Selon its documentation File.mkdirs() "crée le répertoire nommé par le nom de fichier de fin de ce fichier". En d'autres termes: vous explicite créer un répertoire nommé myFile.png. Si c'est pas ce que vous voulez, alors vous probablement voulez faire file.getParentFile().mkdirs() à la place.

1
file.mkdirs() 

le code ci-dessus créera les nouveaux répertoires.

Pour créer le fichier

try{ 
    File file = new File(Environment.getExternalStorageDirectory() 
     +File.separator 
     +"myDirectory" //folder name 
     +File.separator 
     +"myFile.png"); //file name 

    myFile.createNewFile(); 
    OutputStream filoutputStream = new FileOutputStream(myFile); 
    filoutputStream.write(b); 
    filoutputStream.flush(); 
    filoutputStream.close(); 
} catch (IOException e) { 
    // handler exception 
} 
Questions connexes