Mon application est capable d'ouvrir et de traiter certains fichiers. Ainsi, vous pouvez taper sur un tel fichier par exemple dans un gestionnaire de fichiers, et mon application sera offerte pour l'ouvrir. Le filtre d'intention dans le fichier manifeste est configuré de la sorte.Android: supprimer le fichier trought un contenu uri
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="text/plain" />
</intent-filter>
lecture et le traitement du dossier comme celui-ci fonctionne très bien:
Context.getContentResolver().openInputStream(getIntent().getData());
La question est, que je veux supprimer le fichier après son traitement. (Si l'utilisateur coche une case à cocher pour cela) Les utilisateurs n'ont généralement plus besoin du fichier après l'avoir ouvert avec mon application.
Actuellement, je ne peux le faire que si le fichier est fourni en tant que fichier uri (en commençant par le fichier: //). Dans ce cas, ce code fonctionne très bien:
new File(contentUri.getPath()).delete();
Mais je ne sais pas comment supprimer le fichier s'il est fourni en uri de contenu. (En commençant par le contenu: //)
Par exemple retourne la valeur null, et ne fait rien:
Context.getContentResolver().delete(getIntent().getData(), null, null);
D'où obtenez-vous le 'Uri'? – CommonsWare
Jetez un coup d'œil à DocumentFile :: deleteFile(). – greenapps
Copie possible de [Suppression de fichiers via un 'ContentResolver' par opposition à leur suppression via 'file.delete()'] (http://stackoverflow.com/questions/10925196/deleting-files-via-a-contentresolver-as -opposed-to-deleting-them-via-file-del) –