Asunto: No puedo copiar fichero: El proceso no tiene acceso al archi
Estoy haciendo una aplicación que copia ficheros de una ubicación a otra con Delphi, en Windows. Utilizo la función CopyFile de Delphi, perteneciente a la unidad Windows.
Cuando realizo la copia de la unidad (completa) donde se encuentra el sistema operativo, he podido observar que da estos errores con algunos ficheros:
C:\pagefile.sys >> El proceso no tiene acceso al archivo porque está siendo utilizado por otro proceso.
C:\Documents and Settings\All Users\
Datos de programa\Microsoft\
Dr Watson\user.dmp >> Acceso denegado
C:\Documents and Settings\alonso\
Configuración local\Archivos temporales de Internet\
Content.IE5\0DE385DF\CA10O3GDCAAJN2BDCAUAFFGUCAL2
E4SECAX0762VCADHZG14CANBT8XWCANW6FW
2CAHHK8HTCARDHABVCAUN43DUCA1HLWZKC
ARB879FCAV295GNCAM86AMGCAJ8DV2UCAR
947C9CA33FAYX.htm >> El sistema no puede hallar la ruta especificada
¿a qué se debe? ¿es normal?
Publicado:
Dom Ago 26, 2007 7:40 am
varios Magnífico usuario
Registrado: Oct 10, 2006 Mensajes: 2092
Asunto: Código Delphi que utilizo para copiar ficheros
El código que utilizo para copiar los ficheros, que copia carpetas y subcarpetas, es:
if FindFirst(carpetaOrigen + filtro,
faAnyFile, compBusqueda) = 0 then
begin
repeat
if (compBusqueda.Name <> '.') and
(compBusqueda.Name <> '..') then
if (compBusqueda.Attr and faDirectory) > 0 then
copiaFicheros(carpetaOrigen + compBusqueda.Name,
carpetaDestino + compBusqueda.Name, filtro,
reemplazarFicheros, tipoLog)
else
begin
lInfo.Caption := 'Copiando ' +
carpetaOrigen + compBusqueda.Name;
lInfo.Refresh;
Application.ProcessMessages;
if CopyFile(Pchar(carpetaOrigen +
compBusqueda.Name),
PChar(carpetaDestino + compBusqueda.Name),
reemplazarFicheros) then
begin
if (tipolog = 'todo') then
listaLog.Add ('OK: ' + carpetaOrigen +
compBusqueda.Name +
' >>> ' + carpetaDestino +
compBusqueda.Name);
numFicherosCopiados :=
numFicherosCopiados + 1;
end
else
begin
if (tipoLog = 'error') or (tipolog = 'todo') then
listaLog.Add ('ER: ' + carpetaOrigen +
compBusqueda.Name +
' >>> ' + carpetaDestino +
compBusqueda.Name +
' ERROR: ' +
SysErrorMessage(getlasterror));
numFicherosNoCopiados :=
numFicherosNoCopiados + 1;
end;
be.Panels[0].Text := 'OK: ' +
IntToStr(numFicherosCopiados) +
' ER: ' + IntToStr(numFicherosNoCopiados);
end;
until FindNext(compBusqueda) <> 0;
FindClose(compBusqueda);
end;
end;
Ultima edición por varios el Dom Ago 26, 2007 10:08 am, editado 1 vez
Publicado:
Dom Ago 26, 2007 7:45 am
varios Magnífico usuario
Registrado: Oct 10, 2006 Mensajes: 2092
Asunto: Otros ficheros que dan error al copiar
Algunos ficheros más que dan error al intentar copiarlos, en este caso siempre es el mismo error: El proceso no tiene acceso al archivo porque está siendo utilizado por otro proceso.
C:\Documents and Settings\LocalService.NT AUTHORITY\Configuración local\Datos de programa\Microsoft\Windows\UsrClass.dat.LOG
C:\Documents and Settings\LocalService.NT AUTHORITY\Configuración local\Datos de programa\Microsoft\Windows\UsrClass.dat
C:\Documents and Settings\alonso\NTUSER.DAT
C:\Documents and Settings\alonso\ntuser.dat.LOG
C:\WINXP\system32\CatRoot2\edb.log
C:\WINXP\system32\CatRoot2\edbtmp.log
C:\WINXP\system32\CatRoot2\tmp.edb
C:\WINXP\system32\config\default
C:\WINXP\system32\config\default.LOG
C:\WINXP\system32\config\SAM
C:\WINXP\system32\config\SAM.LOG
C:\WINXP\system32\config\SECURITY
C:\WINXP\system32\config\SECURITY.LOG
C:\WINXP\system32\config\software
C:\WINXP\system32\config\software.LOG
C:\WINXP\system32\config\system
C:\WINXP\system32\config\system.LOG
C:\WINXP\system32\drivers\fidbox.dat
C:\WINXP\system32\drivers\fidbox.idx
C:\WINXP\Temp\ib14
C:\WINXP\Temp\ib15
C:\WINXP\Temp\ib16
Publicado:
Dom Ago 26, 2007 7:53 am
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: No puedo copiar fichero: El proceso no tiene acceso al a
Anuncios
Efectivamente, estos errores que nos comentas son normales, te los explicamos a continuación:
El proceso no tiene acceso al archivo porque está siendo utilizado por otro proceso
Este error al copiar fichero se produce porque el fichero que se intenta copiar está abierto en modo exclusivo, son ficheros, normalmente, del sistema operativo, como por ejemplo pagefile.sys, que es el archivo de paginación de la memoria virtual de Windows. Este fichero está abierto siempre en modo exclusivo por el sistema operativo y no podrá ser ni modificado, ni eliminado, ni siquiera copiado.
Acceso denegado
Este error se debe a que el usuario con el que estás copiando los archivos no tiene permisos de lectura para el fichero. Determinados archivos de Windows XP, 2000, 2003, Vista tienen restringido el acceso incluso los usuarios administradores.
El sistema no puede hallar la ruta especificada
En este caso, el error se debe a que la ruta y el nombre del fichero son demasiado largos o, incluso, porque el fichero está en subcarpetas que superan el nivel máximo.
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A