web-dev-qa-db-fra.com

Comment puis-je extraire TOUS les fichiers d'un dossier présent dans la carte SD

J'ai un dossier sur ma carte SD en tant que: /Mnt/sdcard/Folder1/Folder2/Folder3/*. Jpg

Le nom de Folder1 et Folder2 reste constant et à l'intérieur de Folder2, j'ai Folder3, 4, 5 et ainsi de suite .. ordinateur..

Chaque dossier a un nombre différent de fichiers jpeg et autres fichiers et j'ai essayé de l'utiliser:

adb pull mnt/sdcard/Folder1/Folder2/Folder/*.jpg .

Mais cela n'a pas fonctionné ... Alors, comment puis-je extraire tous les fichiers présents dans n'importe quel dossier de la carte SD avec une seule commande (une seule commande car chaque dossier contient un nombre différent de fichiers)

93
ritesht93

Fichier/dossier unique utilisant pull:

adb pull "/sdcard/Folder1"

Sortie:

adb pull "/sdcard/Folder1"
pull: building file list...
pull: /sdcard/Folder1/image1.jpg -> ./image1.jpg
pull: /sdcard/Folder1/image2.jpg -> ./image2.jpg
pull: /sdcard/Folder1/image3.jpg -> ./image3.jpg
3 files pulled. 0 files skipped.

Fichiers/dossiers spécifiques utilisant find à partir de BusyBox:

adb Shell find "/sdcard/Folder1" -iname "*.jpg" | tr -d '\015' | while read line; do adb pull "$line"; done;

Voici une explication:

adb Shell find "/sdcard/Folder1" - use the find command, use the top folder
-iname "*.jpg"                   - filter the output to only *.jpg files
|                                - passes data(output) from one command to another
tr -d '\015'                     - explained here: http://stackoverflow.com/questions/9664086/bash-is-removing-commands-in-while
while read line;                 - while loop to read input of previous commands
do adb pull "$line"; done;         - pull the files into the current running directory, finish. The quotation marks around $line are required to work with filenames containing spaces.

Les scripts commenceront dans le dossier principal, puis récursivement, rechercheront tous les fichiers "* .jpg" et les extrairont de votre téléphone vers le répertoire actuel.

117
Jared Burrows

Le répertoire pull est disponible sur les nouveaux outils Android . (Je ne sais pas à partir de quelle version il a été ajouté, mais il fonctionne sur le dernier ADT 21.1)

adb pull /sdcard/Robotium-Screenshots
pull: building file list...
pull: /sdcard/Robotium-Screenshots/090313-110415.jpg -> ./090313-110415.jpg
pull: /sdcard/Robotium-Screenshots/090313-110412.jpg -> ./090313-110412.jpg
pull: /sdcard/Robotium-Screenshots/090313-110408.jpg -> ./090313-110408.jpg
pull: /sdcard/Robotium-Screenshots/090313-110406.jpg -> ./090313-110406.jpg
pull: /sdcard/Robotium-Screenshots/090313-110404.jpg -> ./090313-110404.jpg
5 files pulled. 0 files skipped.
61 KB/s (338736 bytes in 5.409s)
69
Palani

Essayez d’indiquer simplement le chemin d’où vous voulez extraire les fichiers .__ Je viens de recevoir les fichiers de sdcard comme

adb pull sdcard/

ne PAS donner * comme pour élargir la recherche ou pour filtrer . ex: adb pull sdcard/*. txt -> ceci n’est pas valide.

il suffit de donner adb pull sdcard /

38
Narenderan Perumal

Oui, il suffit d'utiliser la barre oblique finale pour extraire le répertoire de manière récursive. Fonctionne pour moi avec Nexus 5 et la version actuelle d’adb (mars 2014).

Sur Android 6 avec ADB version 1.0.32, vous devez mettre/derrière le dossier que vous souhaitez copier. E.g adb pull "/sdcard/".

2
antimatter

si vous utilisez simplement jellybean, lancez cmd, tapez adb devices pour vous assurer que votre texte est lisible, tapez adb pull sdcard/sdcard_ (la date ou un extra) <--- ce fichier doit être créé au préalable dans le répertoire adb. PROFIT!

Dans les autres versions, tapez adb pull mnt/sdcard/sdcard_ (la date ou extra)

N'oubliez pas de créer un fichier ou vous aurez un désordre ou cela ne fonctionnera pas.

1
EDward

Si vous voulez extraire un répertoire avec un accès restreint à partir d'un périphérique root, vous devez redémarrer adb en tant que root: tapez adb root avant pull Sinon, vous obtiendrez une erreur en indiquant remote object '/data/data/xxx.example.app' does not exist

0
naXa