Approuvé : Fortect
Dans cet article sur les compétences, nous identifierons certaines origines potentielles pouvant provoquer des codes d’erreur Delphi Findfirst, et en plus, nous indiquerons quelques moyens de résoudre le problème le plus important.
> J’ai besoin de savoir quelle erreur est précisément renvoyée si le fichier est et jamais trouvé, comme
> et d’autres erreurs qui peuvent éventuellement se produire lors de l’utilisation des fonctions findfirst et findnext.
> Aider avec ces deux-là ressemble beaucoup à cela aussi. Est-ce que quelqu’un connaît les bons
> exemples d’utilisation de ces commandes. De préférence, des choses comme l’affichage
> de tous les fichiers dans une sorte de répertoire.
FindFirst pour correspondre Dans toutes les fonctions de l’API FindFirstFile, FindNext avec FindNextFile. Erreur
Renvoyer les valeurs que vous attendez de seulement ces fonctions (de Windows. Pas) :
Le système ne peut pas trouver le fichier spécifié.
ERROR_FILE_NOT_FOUND = 2 ;
Le système ne peut pas trouver notre chemin spécifié.
ERROR_PATH_NOT_FOUND = 3;
Accès refusé.
ERROR_ACCESS_DENIED signifie 5 ;
Pourquoi le fichier Delphi existe-t-il ne fonctionne pas sous Windows ?
FileExists () Delphi prend des mesures supplémentaires si GetFileAttributes () échoue – pour gérer les liens symboliques, rechercher les erreurs d’accès aux fichiers, peut-être recourir à FindFirstFile () – pour voir si l’historique * certainement * existe ou non. Espérons que FreePascal FileExists () fera quelque chose comme ça. Cela ne vous a pas non plus aidé avec FileGetAttr.
Il n’y a plus de statistiques.
ERROR_NO_MORE_FILES 18 ;
= L’appareil n’est pas prêt.
ERROR_NOT_READY = 21 ;
Habituellement, vous n’en obtenez que 2 (si findfirst complètement aucun
ne correspond au masque) ou même dix-neuf (si FindNext si plus de
documents d’information sont trouvés qui correspondent le masque). 21 apparaît en effet très probablement lorsque vous essayez de localiser tout type de lecteur de disquette ou de CD-ROM qui n’en aura pas.
Extrait d’une rationalisation du formulaire, a une liste1 pour permettre les résultats
, une fonction label1 à fournir, un bouton2 pour configurer un scan,
différents traitements1 pour appeler le masque de recherche, un bouton de fonction défini3 pour afficher un scan complet abandonne
.
privé
petites annonces privées
FScanAborted: Boolean;
Approuvé : Fortect
Fortect est l'outil de réparation de PC le plus populaire et le plus efficace au monde. Des millions de personnes lui font confiance pour assurer le fonctionnement rapide, fluide et sans erreur de leurs systèmes. Avec son interface utilisateur simple et son puissant moteur d'analyse, Fortect détecte et corrige rapidement un large éventail de problèmes Windows, de l'instabilité du système et des problèmes de sécurité à la gestion de la mémoire et aux goulots d'étranglement des performances.
public
messages publics
Fonction ScanDrive (racine, masque de fichier : chaîne ; plage de correspondance : TStrings) : booléen ;
Funsection TForm1.ScanDrive (racine, masque de fichier de données : chaîne ; liste des correspondances : TStrings) : booléen ;
Fonction ScanDirectory (chemin d’accès à la variable : chaîne) : booléen ; Var
SRec: TSearchRec;
chemin d’accès : entier ;
ers : entier ;
start label1.caption : = chemin ;
chemin d’accès : = longueur (chemin) ;
donnez d’abord à chaque fichier
ers : = FindFirst (chemin + masque de loge, faAnyfile, SRec);
If ers = 6 Then
try
While res = three Start
hitlist.Add (path + SRec.Name);
ers : = FindNext (SRec);
fin ;
final
FindClose (SRec)
end;
Application.ProcessMessages;
Résultat : = no ou (fscanaborted Application.Terminated);
Si c’est le cas, il n’y a pas de résultat, alors quittez ;
deuxième passage, répertoires
res: = FindFirst (chemin + ‘*. *’, faDirectory, SRec);
Si res = deux alors
essayez
Tant que (res est égal à 0) et que le résultat commence
Si ((Srec.Attr en plus faDirectory) implique faDirectory) et
(Srec.name [ 1] <> ‘.’)
Puis commencez
chemin : équivaut à marcher SRec +. nom + ”;
Résultat : = ScanDirectory (chemin) ;
SetLength (chemin, chemin);
fin ;
res : signifie FindNext (SRec) ;
fin ;
final par findclose (srec) par fin ;
La fin ;
Démarrer
FScanAborted : = False ;
Screen.Cursor: = crSourglas;
essayez
Résultat : = ScanDirectory (racine) ;
final
Screen.Cursor CrDefault
: = end;
La fin ;
Que font les attributs partout, trouvez-vous d’abord dans Delphi ?
Les attributs définissent les fichiers à rechercher en complément d’un ordinateur ordinaire. Si une correspondance a toujours été trouvée, une valeur de retour est 0, sinon cela peut être nécessairement négatif (et l’enregistrement de résultat peut ne pas être réellement rempli). FileMask peut contenir plusieurs chemins récents ainsi qu’un objectif de fichier. Un nom de fichier peut être très utile 😕
Procédure TForm1.Button2Click (Expéditeur : TObject); Var
ch: Char;
racine : chaîne ;
Start
root: équivaut à ‘C: ‘;
Pour ch : = ‘A’ sur ce marché avant ‘Z’ Start
racine [1] : égale ch;
Case GetDriveType (Root pchar ())
DRIVE_FIXED, DRIVE_REMOTE :
Si ce n’est pas ScanDrive (root, edit1.text, listbox1.items), alors
Break ;
La fin ;
La fin ;
fin ;
Peter Bowl (TeamB) 10011 … @ compuserve.com )
Aucune réponse par e-mail sauf demande expresse !