Obtenir le chemin réel d'un fichier texte à partir de l'explorateur de fichiers sous Android
Sous Android, lors de la sélection d'un fichier dans l'explorateur de fichiers à l'aide de l'intention. ACTION_OPEN_DOCUMENT, vous pourriez rencontrer des difficultés pour obtenir le chemin réel du fichier. En effet, l'Uri renvoyé par l'explorateur de fichiers peut ne pas pointer directement vers un chemin de système de fichiers.
Pour comprendre ce problème, il est crucial de savoir que ACTION_OPEN_DOCUMENT ouvre un document, pas nécessairement un fichier. Le document peut être un fichier, mais il peut également s'agir d'une entrée de base de données, d'un flux d'octets ou d'un autre type d'objet de données.
Par conséquent, essayer d'obtenir le « chemin réel » d'un fichier à partir d'un le document Uri n’est pas toujours possible ou conseillé. Voici quelques approches alternatives :
-
Utilisez ContentResolver : Au lieu d'essayer d'extraire le chemin du fichier, utilisez ContentResolver et openInputStream() pour lire le contenu du document et l'écrire dans un fichier que vous contrôlez. Cela garantit que vous disposez d'une copie locale des données avec lesquelles vous pouvez travailler.
-
Utilisez une bibliothèque de sélection de fichiers : Si vous êtes spécifiquement intéressé par la sélection de fichiers, intégrez une bibliothèque de sélection de fichiers dans votre application. Ces bibliothèques offrent une expérience de sélection de fichiers plus contrôlée et peuvent simplifier le processus d'obtention du chemin d'accès du fichier. Cependant, gardez à l'esprit que l'accès au système de fichiers est restreint dans les versions plus récentes d'Android, en particulier pour le stockage externe.
-
Vérifiez le schéma du document : Si vous utilisez ACTION_GET_CONTENT, vérifiez le schéma de l'Uri renvoyé . S'il s'agit de « fichier », vous pouvez utiliser la méthode getPath() pour récupérer le chemin du système de fichiers. Cependant, si le schéma est autre, vous ne devez pas compter sur l'Uri pour fournir un chemin d'accès à un fichier.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!