Foros del Web » Programando para Internet » ASP Clásico »

Leer archivos de un directorio

Estas en el tema de Leer archivos de un directorio en el foro de ASP Clásico en Foros del Web. a ver si se puede hacer. Quiero introducir en un campo de una base de datos la ruta y nombre de cada uno de los ...
  #1 (permalink)  
Antiguo 28/04/2003, 03:33
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.135
Antigüedad: 21 años, 7 meses
Puntos: 2
Leer archivos de un directorio

a ver si se puede hacer. Quiero introducir en un campo de una base de datos la ruta y nombre de cada uno de los archivos imagen que tengo en un determinado directorio (para no tener que introducirlas una una en la bd de forma manual) mediante un bucle y alguna funcion que no sé cual puede ser.

a ver si me podeis ayudar

gracias
  #2 (permalink)  
Antiguo 28/04/2003, 10:51
Avatar de xlugo2002  
Fecha de Ingreso: noviembre-2002
Ubicación: Puebla, México
Mensajes: 474
Antigüedad: 21 años, 7 meses
Puntos: 0
ay te van los objetos:

Métodos para trabajar con carpetas

•BuildPath(ruta, nombre): devuelve una cadena que resulta de añadir el fichero o directorio
indicado en nombre a la ruta especificada, añadiendo un caracter \ si es necesario.

•CopyFolder(origen, destino, sobreescribir): copia la carpeta o carpetas indicadas en origen,
pudiéndose utilizar caracteres comodín, a la carpeta de destino especificada, incluyendo todo
el contenido de la carpeta origen, es decir, se trata de una copia recursiva. En sobreescribir
indicaremos True o False según proceda, el valor por defecto es True. Se producirá un error si
la carpeta de destino existe y el valor de sobreescribir es False. Para poder copiar una carpeta,
y en definitiva para poder realizar cualquier operación de escritura, es necesario que el usuario
anónimo de Internet (IUSR_NombreMaquina), posea los permisos necesarios para realizar
tales operaciones. Esto es aplicable a todos los objetos del sistema de archivos. Tanto origen
como destino deben ser rutas físicas. Si destino finaliza en \ se copiará el origen en la carpeta
destino, en caso contrario se creará la carpeta destino.

•CreateFolder(nombreCarpeta): crea el directorio con la ruta y nombre especificados. Se
produce un error si la carpeta ya existe.

•DeleteFolder(carpeta, forzar): elimina la carpeta especificada junto con todo su contenido,
permitiendo utilizar caracteres comodín. Si el parámetro forzar tiene el valor True se eliminará
la carpeta aunque sólo sea de lectura, el valor por defecto de este parámetro es False.

•FolderExits(carpeta): devuelve verdadero si la carpeta indicada existe, y falso en caso
contrario.

•GetAbsolutePathName(ruta): devuelve la ruta completa correspondiente a la que indicamos
por parámetro. Desde la ejecución de una página ASP este valor siempre será
c:\winnt\system32.

•GetFolder(carpeta): devuelve un objeto Folder que se corresponde con la carpeta indicada. A
través del objeto Folder se podrá obtener información detallada de la carpeta y también se
podrá manipular a través de los métodos que ofrece el objeto Folder.

•GetParentFolderName(ruta): devuelve el nombre de la carpeta padre de la ruta especificada.
No comprueba si la ruta existe.

•GetSpecialFolder(carpeta): devuelve un objeto Folder que se corresponde con la carpeta
especial indicada, podemos indicarlo mediante las constantes definidas en la librería de tipos
del objeto FileSystemObject, estas constantes son: WindowsFolder(0), SystemFolder(1) y
TemporaryFolder(2).

•MoveFolder(origen, destion): mueve la carpeta o carpetas indicadas en el origen al destino
especificado, en el parámetro origen se pueden utilizar comodines. Se producirá un error si la
carpeta de destino ya existe. Si destino finaliza en \ se asume que es un directorio en el que se
moverá el directorio de origen, en caso contrario se asumirá que es el nombre del nuevo
directorio.

Métodos para trabajar con ficheros

•CopyFile(origen, destino, sobreescibir): copia el fichero o ficheros especificados en origen al
destino indicado. Si destino finaliza con \ entonces se asume que destino es una carpeta, en
caso contrario se asume que es el nombre del fichero de destino. Se producirá un error si el
fichero de destino ya existe y sobreescribir tiene el valor falso.

•CreateTextFile(nombreFichero, sobreescibir, unicode): crea un nuevo fichero de texto con el
nombre de fichero especificado y devuelve un objeto TextStream que representa al fichero de
texto. Si el parámetro sobreescibir, que es opcional, tiene el valor True el fichero si existe se
sobreescibirá, por defecto tiene valor False. El parámetro unicode tambi´én es opcional y si
tiene el valor True se creará el contenido del fichero en texto en formato unicode, el valor por
defecto de este parámetro es False.

•DeleteFile(nombreFichero, forzar): borra el fichero o ficheros especificados, ya que permite
utilizar comodines. Para borrar ficheros de sólo lectura se debe indicar True en el parámetro
forzar, su valor por defecto es False. Si el fichero no existe se producirá un error.

•FileExists(nombreFichero): devuelve verdadero si el fichero indicado existe, devolverá falso
en caso contrario.

•GetBaseName(nombreFichero): devuelve únicamente el nombre del fichero indicado, sin ruta
y sin extensión.

•GetExtensionName(nombreFichero): devuelve únicamente la extensión del fichero indicado.

•GetFile(nombreFichero): devuelve un objeto File que va a representar al fichero indicado en el
parámetro. Mediante las propiedades y métodos de File podremos obtener información
detallada del fichero y realizar operaciones con el.

•GetFileName(nombreFichero): devuelve el nombre del fichero indicado junto con su
extensión.

•GetTempName(): devuelve un nombre de fichero generado aleatoriamente, que se puede
utilizar para crear ficheros temporales.

•MoveFile(origen, destino): mueve el fichero o ficheros especificados en origen a la carpeta
indicada en destino. Si destino finaliza con \ se asume que es el directorio en el que se va a
mover el fichero, en caso contrario destino será la ruta y el nombre del nuevo fichero. Si el
fichero de destino existe se producirá un error.

•OpenTextFile(nombreFichero, modo, crear, formato): crea un fichero de texto con el nombre
indicado y devuelve un objeto TextStream que permite manipularlo, el resto de los parámetros
son opcionales. El modo puede ser una de las siguientes constantes ForReading(1), es decir,
de sólo lectura, ForWriting(2), para escritura eliminando todos los contenidos, y
ForAppending(8), de escritura para añadir contenidos sin eliminar los existentes, por defecto
el valor de este parámetro es ForReading. El fichero si se abre para escritura y no existe y el
parámetro crear tiene el valor True se creará un nuevo fichero, por defecto el valor de este
parámetro es False. Los formatos válidos del fichero son TristateFalse(0) para abrirlo como
texto ASCII, TristateTrue(-1) para abrir el fichero como unicode y TristateUseDefault(-2) para
abrir el fichero utilizando el formato por defecto del sistema. Por defecto el parámetro formato
tiene el valor TristateFalse.


Set MObjArch = Server.CreateObject("Scripting.FileSystemObject")

If MObjArch.FolderExists(Directorio) Then
Set MFolder = MObjArch.getFolder(Directorio)
Set MArchivos = MFolder.Files

For Each MArchivo In MArchivos ¡¡ recorres los archivos ¡!!
MArchivo.Name
Next
.................... lo que sigue

creo que se intuye su funcionamiento.....

Última edición por xlugo2002; 28/04/2003 a las 10:54
  #3 (permalink)  
Antiguo 28/04/2003, 12:56
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 22 años, 4 meses
Puntos: 1
Magnifico planteamiento si señor lo voy a rematar
Esto serviria para indexar todos los ficheros de un directorio y almacenarlos en una base de datos.
La base de datos os la dejo aqui:
http://www.expansionweb.net/asp_pruebas/mybase.mdb
Es una base de access 2000 llamada mybase.mdb, con una tabla llamada ficheros y un solo campo llamado nombre.

El script esta ajustado para listar e indexar los ficheros del directorio donde lo coloqueis.
La base de datos debe esta en el directorio FPDB (estaba con el FRONTPAGE) de vuestro sitio, cambiarlo a vuestro gusto

El codigo seria este:

<%
Set oConn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("fpdb/mybase.mdb")
' Cambiar fpdb por el directorio donde ubiqueis la base de datos
' Recordar darle permisos de escritura que vamos a escribir en ella
sql = "SELECT * FROM ficheros"
rs.Open SQL, oConn,1,2

Set MObjArch = Server.CreateObject("Scripting.FileSystemObject")
Set MFolder = MObjArch.getFolder(server.mappath("/"))
Set MArchivos = MFolder.Files

For Each MArchivo In MArchivos
'esto los muestra por pantalla, para que veamos que valores
'se van a añadir a la base de datos.
response.write(MArchivo.Name &"<br>")
'Esto los ubica en la base de datos
rs.addnew
rs("nombre")=MArchivo.Name
' Aqui podriamos capturar tambien otros valores como el tamaño
' Fecha y hora, etc
rs.update
Next
%>

Que os aproveche.
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net

Última edición por maestro; 28/04/2003 a las 17:31
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 00:16.