2017-09-19 4 views
0

Voici le chemin de ma carte SD d'un fichier start.mp4. Je suis en mesure d'obtenir ce fichier en mode lecture, mais pas en mesure d'ouvrir en mode rw. J'ai également donné des autorisations d'exécution. Il émet une exception:Impossible d'ouvrir le fichier dans Fileoutputstream uniquement dans le cas où le fichier est dans la carte SD

/storage/3263-6232/piyush/Download/start.mp4: open failed: EACCES (Autorisation refusée)

Voici le code:

//This is the sd-card path of the file which needs to be edited 

String sdCardPath = "/storage/3263-6232/piyush/Download/start.mp4"; 
File file = new File(sdCardPath); 
try{ 

RandomAccessFile rfs = new RandomAccessFile(file, "rw"); 

rfs.seek(file.length()); 
rfs.close(); 

} catch (IOException e) { 
    e.printStackTrace(); 
} 
In the above code I have taken sdcardpath to a file which exists in sdcard. Than after that whenever I tried to open that file in outputstream using RandomAccessFile it gives FilenotFound Exception: 

/storage/3263-6232/piyush/Download/start.mp4: open failed: EACCES (Permission denied) 
+2

« Je suis en mesure d'obtenir ce fichier en mode de lecture mais pas en mesure d'ouvrir en mode rw » - puisque vous n'avez pas accès en lecture/écriture à des fichiers arbitraires [amovible stockage] (https://commonsware.com/blog/2014/04/09/storage-situation-removable-storage.html) sur Android 4.4+, ce n'est pas surprenant. Cependant, Stack Overflow est pour la programmation des questions, et vous n'avez pas posé de question. – CommonsWare

Répondre

0

si vous utilisez Android 6 et plus vous devriez faire une autorisation de l'exécution demande comme ça:

private void requestPermission() { 

    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1); 

    } 

et votre onCreate:

public void onCreate(){ 
requestPermission(); 
}