2009-05-31 13 views
5

Ad esempio in Windows Explorer?Come si possono estrarre i nomi dei file in una cartella come testo?

+2

L'utilizzo di qualsiasi particolare linguaggio/strumento? –

+2

In che senso? Vuoi un link del menu contestuale per copiare il nome del file? O una sceneggiatura per farlo e stampare i risultati? – Kazar

+0

Ogni volta che viene modificato il contenuto di una cartella condivisa sul mio computer, voglio che venga inviata una email a tutti coloro con cui ho condiviso la cartella. – systemovich

risposta

21

In assenza di qualsiasi ulteriori informazioni,

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

di scrivere un elenco di file in un file di testo (files.txt)

EDIT: dir /b per generare semplicemente i nomi dei file nude

+1

"dir/b> files-names.txt" <- '/ b' sta per "elenco nudo" –

+0

Doh. Notato. Grazie –

+0

Grazie, Brian. Quindi questo non può essere fatto in Windows, solo in DOS? – systemovich

1

Se stiamo parlando di C# allora quanto segue restituirà il percorso completo in un array di stringhe:

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

per ottenere i nomi di file:

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

Per solo i nomi di file:

c:\dir /b > files.txt 
3

Per un ambiente UNIX, cd mydirectory && ls > filelist.txt

+0

nota: ls è abbastanza intelligente da sapere quando viene eseguito il piping. quindi non fornisce le normali informazioni che lo farebbe se lo si eseguisse direttamente dalla console. –

1

in python! Prende il percorso come una discussione.

import os 
import sys 

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

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

di aggiungere qualche sapore supplementare generica, in un PHP one-liner, come su:

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

Non sono sicuro se ti interessa distinguere file e directory oppure no. Quanto segue scriverà i nomi dei file nella directory corrente su listing.txt.

In DOS:

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

In ogni Bourne-based shell:

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

o:

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

+1 per articoli in lotti. –

Problemi correlati