Aprobado: Fortect
En este artículo, podríamos identificar algunas causas potenciales que pueden causar códigos de error de Delphi Findfirst y luego señalar formas de solucionar el problema.
> Necesito saber qué error se devuelve una vez que no se encuentra el archivo, como
> junto con otros errores que pueden ocurrir cuando se utilizan las funciones findfirst y findnext.
> Ayudar con estos dos más se parece mucho a eso también. ¿Conoce realmente algún buen
> ejemplo sobre el uso de estos comandos? Preferiblemente cosas como tener
> todos los archivos en un directorio.
FindFirst para que coincida En la función de API FindFirstFile, FindNext con FindNextFile. Error
Devolviendo la moral que esperaría de uno de estos funcionamientos (de Windows. No):
El sistema no puede encontrar mi archivo especificado.
ERROR_FILE_NOT_FOUND = 2;
El sistema no puede encontrar la ruta especificada.
ERROR_PATH_NOT_FOUND = 3;
Acceso denegado.
ERROR_ACCESS_DENIED métodos 5;
¿Por qué existe el archivo Delphi? no funciona en Windows?
FileExists () Delphi necesita una acción adicional si GetFileAttributes () falla – eso ayudará a manejar enlaces simbólicos, comprobar si hay errores de acceso a archivos, quizás recurrir a FindFirstFile () – para saber si el historial * realmente * existe o no. Con suerte, FreePascal FileExists () hará algo como esto. Tampoco ayudó con FileGetAttr.
No hay más hechos.
ERROR_NO_MORE_FILES 18;
implica que el dispositivo no está listo.
ERROR_NOT_READY equivale a 21;
Por lo general, obtiene 2 (si findfirst no
coincide con algún tipo de máscara) o incluso 18 (si FindNext si básicamente no se encuentran más archivos de información
que encajan en la máscara). Lo más probable es que aparezca 21 en el caso de que intente localizar un disquete o un CD-ROM que no tenga un disquete.
Extracto de una explicación del formulario, ofrece una lista1 para respaldar los resultados
, la función perfecta etiqueta1 para ejecutar, un botón2 para configurar un escaneo,
cualquier procesamiento1 para llamar por teléfono a la máscara de búsqueda, un botón de función3 para representar una parada de escaneo completa
. anuncios clasificados privados y personalizados
FScanAborted: booleano;
Aprobado: Fortect
Fortect es la herramienta de reparación de PC más popular y eficaz del mundo. Millones de personas confían en él para mantener sus sistemas funcionando de forma rápida, fluida y sin errores. Con su sencilla interfaz de usuario y su potente motor de análisis, Fortect encuentra y soluciona rápidamente una amplia variedad de problemas de Windows, desde la inestabilidad del sistema y los problemas de seguridad hasta la gestión de la memoria y los cuellos de botella en el rendimiento.
anuncios públicos vitales
Función ScanDrive (raíz, máscara de alojamiento: String; lista de coincidencias: TStrings): booleano;
Sección funcional TForm1.ScanDrive (raíz, máscara de archivo: Cadena; lista procedente de todas las coincidencias: TStrings): Boolean;
Función ScanDirectory (ruta que regresa a la variable: String): Boolean; Var
SRec: TSearchRec;
pathlen: entero;
ers: entero;
establece label1.caption: = ruta;
pathlen: = dimensiones (ruta);
proporcione primero los archivos
ers: equivale a FindFirst (ruta + máscara de archivo, faAnyfile, SRec);
Si ers = 0 Entonces
prueba
While res = 0 Inicio
lista de resultados.Añadir (ruta + SRec.Name);
res: = FindNext (SRec);
final; final
FindClose (SRec)
final;
Application.ProcessMessages;
Resultado: = no y para (fscanaborted Application.Terminated);
Si no hay ningún resultado, salga;
segundo paso, directorios
res: significa FindFirst (ruta + ‘*. *’, faDirectory, SRec);
Si res = 0 entonces
emprender
Mientras (res = 0) y Resultado Hacer comenzar
Si ((Srec.Attr y faDirectory) implica faDirectory) mientras que
(Srec.name [1 ] <> ‘.’)
Luego comience
ruta: = caminar SRec +. información + ”;
Resultado: = ScanDirectory (ruta);
SetLength (ruta, ruta);
final;
res: implica que FindNext (SRec);
final;
final mediante findclose (srec) by end;
El fin;
Inicio
FScanAborted: = False;
Screen.Cursor: es igual a crSourglas;
intente
Resultado: = ScanDirectory (root); Final
Screen.Cursor CrDefault
: = fin;
El fin;
Qué deben hacer los atributos en findfirst en Delphi?
Los atributos definen encuadernadores para buscar además de un cálculo regular. Si se encuentra una coincidencia, algún valor excelente devuelto es 0; de lo contrario, es necesariamente una duda (y el registro de resultados no se completa). FileMask puede contener la ruta más reciente tan adecuadamente como una función de archivo. Un nombre de archivo puede resultar muy beneficioso 😕
Procedimiento TForm1.Button2Click (Remitente: TObject); Var
ch: Char;
raíz: String;
Inicio
root: = ‘C: ‘;
Para ch: = ‘A’ en el mercado antes de ‘Z’ Start
root [1]: = ch;
Case GetDriveType (Root pchar ())
DRIVE_FIXED, DRIVE_REMOTE:
Si no es ScanDrive (root, edit1.text, listbox1.items), entonces
Break;
El fin;
El fin;
final;
Peter Bowl (TeamB) 10011 … – compuserve.com )
¡No hay respuesta por correo electrónico solicitada específicamente de otro modo!