2009-05-31 7 views
5

Par exemple dans Windows Explorer?Comment peut-on extraire les noms de fichiers dans un dossier sous forme de texte?

+2

L'utilisation d'une langue particulière/outil? –

+2

Dans quel sens? Voulez-vous un lien de menu contextuel pour copier le nom de fichier? Ou un script pour le faire, et imprimer les résultats? – Kazar

+0

Chaque fois que le contenu d'un dossier partagé sur mon ordinateur est modifié, je veux qu'un e-mail soit envoyé à tous ceux avec qui j'ai partagé le dossier. – systemovich

Répondre

21

En l'absence de toute plus d'informations,

c:> cd directory 
c:> dir > files.txt 

d'écrire une liste de fichiers dans un fichier texte (files.txt)

EDIT: dir /b pour générer simplement les noms de fichiers nus

+1

"dir/b> fichiers-noms.txt" <- '/ b' signifie "liste complète" –

+0

Doh. C'est noté. Merci –

+0

Merci, Brian. Donc, cela ne peut pas être fait dans Windows, seulement dans DOS? – systemovich

1

Si nous parlons C# alors le suivant retourne le chemin complet dans un tableau de chaînes:

string[] files = Directory.GetFiles(directory); 

Pour obtenir les noms de fichiers:

foreach (string file in files) 
{ 
    Console.WriteLine(Path.GetFileName(file)); 
} 
6

Pour seulement les noms de fichiers:

c:\dir /b > files.txt 
3

Pour un environnement unix, cd mydirectory && ls > filelist.txt

+0

note: ls est assez intelligent pour savoir quand il est en cours de canalisation. il ne donne donc pas les informations normales si vous l'exécutiez directement à partir de la console. –

1

En python! Il prend le chemin comme un argument.

import os 
import sys 

if __name__ == '__main__': 
    path = sys.argv[1] 

    dir = os.listdir(path) 
    for fname in dir: 
     print fname 
0

Pour ajouter un peu de saveur générique supplémentaire, dans un PHP en une ligne, que diriez-vous:

<?php file_put_contents("listing.txt", implode(PHP_EOL, glob('*'))); 
4

Je ne sais pas si vous vous souciez des fichiers et des répertoires distinguer ou non. Les éléments suivants écriront les noms des fichiers dans le répertoire courant à listing.txt.

Dans DOS:

C:\> IF EXIST listing.txt ERASE listing.txt 
C:\> FOR %I IN (*.*) DO (ECHO %~nxI) >>listing.txt 

En tout shell Bourne-based:

machine$ rm listing.txt 
machine$ for f in *; do [ -f $f ] && echo "$f" >> listing.txt ; done 

ou:

machine$ find . -type f -depth 1 -print > listing.txt 
+0

+1 pour les lots. –

Questions connexes