Goedgekeurd: Fortect
In dit artikel zullen we een diagnose stellen van enkele mogelijke oorzaken die Delphi Findfirst-foutcodes kunnen veroorzaken, en vervolgens enkele beschikbare procedures aangeven om het probleem op te lossen.
> Ik wil weten welke fout wordt geretourneerd als het eigenlijke bestand niet wordt gevonden, zoals
> en de andere fouten die kunnen optreden bij het gebruik van findfirst als findnext-functies.
> Helpen met deze twee om ook zo te worden. Weet iemand met betrekking tot goede
> voorbeelden van het nemen van deze commando’s. Bij voorkeur dingen zoals het bekijken van alle bestanden in een map.
FindFirst past in de FindFirstFile API-functie, FindNext door middel van FindNextFile. Fout
Retourneert de waarden die u waarschijnlijk van een van deze functies mag verwachten (van Windows. Niet):
Het systeem kan het opgegeven archief niet vinden.
ERROR_FILE_NOT_FOUND = 2;
Het arrangement kan het opgegeven pad niet vinden.
ERROR_PATH_NOT_FOUND is gelijk aan 3;
Toegang geweigerd.
ERROR_ACCESS_DENIED zou je 5 moeten vertellen;
Waarom bestaat het Delphi-bestand werkt het niet in Windows?
FileExists () Delphi onderneemt aanvullende actie als GetFileAttributes () faalt – om te zorgen voor symbolische links, te controleren op fouten bij bestandstoegang, zijn mogelijke toevlucht tot FindFirstFile () – om te zien wanneer de geschiedenis * werkelijk * bestaat of niet. Hopelijk zal FreePascal FileExists () zoiets als deze aanpak doen. Het hielp ook niet met FileGetAttr.
Er zijn uiteindelijk geen feiten meer.
ERROR_NO_MORE_FILES 18;
betekent Apparaat niet gereed.
ERROR_NOT_READY = 21;
Gewoonlijk kom je er maar 2 aan (als findfirst geen
overeenkomt met het eigenlijke masker) of zelfs 18 (als FindNext als dat niet het geval is, worden er iets meer
info-bestanden gevonden die overeenkomen met het masker). 21 zal hoogstwaarschijnlijk verschijnen bij het zoeken naar een diskette- of cd-rom-drive die geen diskette heeft.
Fragment uit een uitleg van het formulier, heeft een lijst1 om de resultaten te ondersteunen
, een aanbiedingslabel1 om uit te voeren, een knop2 om een scan naar boven in te stellen,
elke verwerking1 om dit zoekmasker te noemen, een functieknop3 om een betrouwbare volledige scanstop weer te geven
. privé
openbare advertenties
FscanAborted: Boolean;
Goedgekeurd: Fortect
Fortect is 's werelds meest populaire en effectieve pc-reparatietool. Miljoenen mensen vertrouwen erop dat hun systemen snel, soepel en foutloos blijven werken. Met zijn eenvoudige gebruikersinterface en krachtige scanengine kan Fortect snel een breed scala aan Windows-problemen vinden en oplossen - van systeeminstabiliteit en beveiligingsproblemen tot geheugenbeheer en prestatieproblemen.
gebruiker
openbare aankondigingen
ScanDrive-functie (root, bestandscamouflage: String; overeenkomstlijst: TStrings): Boolean;
Funsection TForm1.ScanDrive (root, bestandsmasker: String; lijst met correspondeert: TStrings): Boolean;
ScanDirectory-functie (pad naar verschuiving: String): Boolean; Var
SRec: TSearchRec;
pathlen: geheel getal;
ers: geheel getal;
begin met label1.caption: = pad;
pathlen: = lengte (pad);
main geeft de bestanden
ers: = FindFirst (pad + bestandsmasker, faAnyfile, SRec);
If ers = 0 Dan
proberen
While res = 0 Start
hitlist.Add (pad + SRec.Name);
res: = FindNext (SRec);
einde; zeer
FindClose (SRec)
einde;
Applicatie.ProcessMessages;
Resultaat: = nee of (fscanaborted Application.Terminated);
Indien geen resultaat, aansluitende exit;
second pass, mappen
res: = FindFirst (pad + ‘*. *’, faDirectory, SRec);
Als res = 0
probeer dan
While (res = 0) en Resultaat Do Begin
If ((Srec.Attr en faDirectory) impliceert faDirectory) en zelfs
(Srec.name [ 1] <> ‘.’)
Overweeg dan
pad: = loop SRec +. tot stand brengen + ”;
Resultaat: = ScanDirectory (pad);
SetLength (pad, pad);
einde;
res: betekent FindNext (SRec);
einde;
definitief door findclose (srec) door het proces van end;
Het einde;
Start
FScanAborted: = False;
Scherm.Cursor: = crSourglas;
Resultaat: = ScanDirectory (root); Laatste
Screen.Cursor CrDefault
: = einde;
Het einde;
Wat doen eigenschappen eerst gevonden in Delphi?
Attributen definiëren bestanden bij het zoeken naast een gewone computer. Als een overeenkomst wordt gevonden, is een bepaalde retourwaarde 0, anders is deze noodzakelijkerwijs negatief (en wordt ons eigen resultaatrecord niet daadwerkelijk ingevuld). FileMask kan zowel het meest recente pad als bijna een bestandsfunctie bevatten. Een bestandsnaam kan veel voordelen opleveren:?
Procedure TForm1.Button2Click (Afzender: TObject); Var
ch: Char;
wortel: String;
Start
root: = ‘C: ‘;
Voor ch: = ‘A’op de markt voor ‘Z’ Start
root [1]: = ch;
Case GetDriveType (Root pchar ())
DRIVE_FIXED, DRIVE_REMOTE:
Indien niet ScanDrive (root, edit1.text, listbox1.items), dan
Break;
Het einde;
Het einde;
einde;
Peter Bowl (TeamB) 10011 … op compuserve.com )
Geen antwoord op e-mail tenzij meer specifiek gevraagd!