2009-05-31 8 views
5

Por ejemplo, en Windows Explorer?¿Cómo se pueden extraer los nombres de los archivos en una carpeta como texto?

+2

El uso de cualquier idioma/herramienta en particular? –

+2

¿En qué sentido? ¿Desea un enlace de menú contextual para copiar el nombre del archivo? ¿O un script para hacerlo e imprimir los resultados? – Kazar

+0

Cada vez que se cambia el contenido de una carpeta compartida en mi computadora, deseo que se envíe un correo electrónico a todas las personas con las que he compartido la carpeta. – systemovich

Respuesta

21

En ausencia de cualquier más información,

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

a escribir una lista de archivos en un archivo de texto (files.txt)

EDIT: dir /b simplemente generar los nombres de los archivos desnudas

+1

"dir/b> files-names.txt" <- '/ b' significa 'lista completa' –

+0

Doh. Célebre. Gracias –

+0

Gracias, Brian. ¿Entonces esto no se puede hacer en Windows, solo en DOS? – systemovich

1

Si estamos hablando de C# y luego la siguiente volverá la ruta completa en una matriz de cadenas:

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

para obtener los nombres de archivo:

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

Por tan sólo los nombres de archivo:

c:\dir /b > files.txt 
3

Para un entorno UNIX, cd mydirectory && ls > filelist.txt

+0

Nota: ls es lo suficientemente inteligente como para saber cuándo se está canalizando. por lo que no proporciona la información normal que tendría si la ejecutara directamente desde la consola. –

1

en Python! Toma el camino como un argumento.

import os 
import sys 

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

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

Para añadir un poco de sabor genérica adicional, en un PHP de una sola línea, ¿qué tal:

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

No estoy seguro de si se preocupan por distinguir los archivos y directorios o no. A continuación, se escribirán los nombres de los archivos en el directorio actual en listing.txt.

En DOS:

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

En cualquier 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 para productos por lotes. –

Cuestiones relacionadas