2013-01-25 11 views
2

J'ai cherché ce problème. Il a effectivement travaillé dans une version plus ancienne d'android, mais après avoir mis à jour le SDK, j'obtiens une erreur. Le message d'erreur est "ouvert déposé: ENOTDIR (pas un répertoire): /sdcard/PlayNumbers/mysdfile.xml" Pouvez-vous s'il vous plaît quelqu'un me signaler ce que j'ai mal fait ?? Mes codes sont ci-dessous.Écrire un fichier dans SDcard dans Android

Merci beaucoup,

path=new File("/sdcard/PlayNumbers"); 
myFile = new File(path,"mysdfile.xml"); 
if (!path.exists()) { 
    path.mkdirs(); 
} 
if(!myFile.exists()){ 
    myFile.createNewFile(); 
} 

FileOutputStream fOut = new FileOutputStream(myFile); 
OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut); 

myOutWriter.append("test"); 
myOutWriter.close(); 
fOut.close(); 

==>

File path = null; 
File myFile = null; 
String filePath = Environment.getExternalStorageDirectory().toString(); 
path=new File(filePath+"/PlayNumbers/"); 
myFile = new File(path,"mysdfile.xml"); 

//i also tried both as below 
//path=new File(filePath+"/PlayNumbers"); 
//myFile = new File(path,"mysdfile.xml"); 

if (!path.exists()) { 
    path.mkdirs(); 
} 
if(!myFile.exists()){ 
    myFile.createNewFile(); 
} 
FileOutputStream fOut = new FileOutputStream(myFile); 
OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut); 
myOutWriter.append("test"); 
myOutWriter.close(); 
fOut.close(); 

P.S. ok, j'ai changé comme vous avez mentionné les gars comme mon code, mais ça me donne toujours la même erreur que ce n'est pas le répertoire ... aucune idée ???

Répondre

1

il vous suffit de changer le code suivant parce que vous manque «/»:

myFile = new File(path,"/mysdfile.xml"); 

Mais gardez à l'esprit que vous devez avoir l'autorisation d'écriture dans le stockage externe dans votre fichier manifeste:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
+0

Bonjour Husam A. Al-ahmadi, j'ai essayé mais ça donne toujours l'erreur ENOTDIR (mnt/sdcard/PlayNumbers/mysdfile.xml). En outre, j'ai l'autorisation external_storage. – redpotato

+0

OK JMax, j'ai "/". J'ai écrit en tant que path = new File (filePath + "/ PlayNumbers"); .. Im toujours obtenir l'erreur. Je ne suis pas sûr de ce que je fais mal – redpotato

+0

c'est juste faux. – GreyBeardedGeek

3

Cela devrait fonctionner, en supposant que vous avez la permission correcte dans votre manifeste:

File externalStorageDir = Environment.getExternalStorageDirectory(); 
File playNumbersDir = new File(externalStorageDir, "PlayNumbers"); 
File myFile = new File(playNumbersDir, "mysdfile.xml"); 

if (!playNumbersDir.exists()) { 
    playNumbersDir.mkdirs(); 
} 
if(!myFile.exists()){ 
    myFile.createNewFile(); 
} 
Questions connexes