Godkänd: Fortect
I en artikel kommer vi att identifiera några potentiella orsaker som kan orsaka Delphi Findfirst-felkoder, och därför pekar vi ut några sätt att åtgärda alla problem.
> Jag behöver veta att allt fel returneras om filen inte sågs, som
> och andra fel som kan uppstå när du använder funktionerna findfirst och findnext.
> Att hjälpa till med dessa två ser mycket ut som att de flesta också. Känner någon till några respektabla
> exempel på hur man använder dessa kommandon. Helst produkter som att visa
> alla filer i en kataloglista.
FindFirst att matcha I FindFirstFile API-funktionen, FindNext med FindNextFile. Fel
Returnerar de värden du kan förvänta dig från en som är involverad i dessa funktioner (från Windows. Inte):
Enheten kan inte hitta den angivna filen.
ERROR_FILE_NOT_FOUND betyder 2;
Systemet kan inte hitta det angivna spåret.
ERROR_PATH_NOT_FOUND = 3;
Åtkomst nekad.
ERROR_ACCESS_DENIED betyder 5;
Varför finns Delphi-filen fungerar inte i Windows?
FileExists () Delphi vidtar ytterligare åtgärder om GetFileAttributes () misslyckas – för att hantera symboliska länkar, leta efter många filåtkomstfel, kanske tillgripa FindFirstFile () – för att se om historik * faktiskt (tom ) finns eller inte. Förhoppningsvis skulle FreePascal FileExists () verkligen göra något liknande detta. Det hjälpte inte heller tack vare FileGetAttr.
Det finns inga fler fakta.
ERROR_NO_MORE_FILES 18;
= Enheten inte klar.
ERROR_NOT_READY = 21;
Vanligtvis får du bara 2 (om findfirst inte en
matchar masken) eller till och med 15 (om FindNext om inga fler
infofiler finns kvar som matchar masken). 21 kommer troligen att dyka upp när man försöker hitta en svag CD-ROM-enhet som inte har din diskett.
Utdrag från en förklaring om formuläret, har en list1 för att stödja någon sorts resultat
, en funktion label1 att köra, deras button2 för att ställa in en skanning,
någon form av bearbetning1 för att anropa sökmasken, en lyckas-knapp3 för att visa en fullständig skanningspaus
. privat
privata annonser
FScanAborted: Boolean;
Godkänd: Fortect
Fortect är världens mest populära och effektiva PC-reparationsverktyg. Det litar på miljontals människor för att hålla sina system igång snabbt, smidigt och felfritt. Med sitt enkla användargränssnitt och kraftfulla skanningsmotor hittar och fixar Fortect snabbt ett brett utbud av Windows-problem – från systeminstabilitet och säkerhetsproblem till minneshantering och prestandaflaskhalsar.
offentliga
offentliga meddelanden
ScanDrive-funktion (root, filmask: String; matchlista: TStrings): Boolean;
Funsection TForm1.ScanDrive (root, file hide: String; lista över matchningar: TStrings): Boolean;
ScanDirectory funktion (sökväg till variabel: String): Boolean; Var
SRec: TSearchRec;
pathlen: heltal;
res: heltal;
starta label1.caption: = sökväg;
pathlen: är lika med längd (bana);
ge först infofilerna
ers: = FindFirst (sökväg + filtäckning, faAnyfile, SRec);
Om ers = 0 Då
försök
Medan res = 0 Starta
hitlist.Add (sökväg + SRec.Name);
res: är lika med FindNext (SRec);
slut; final
FindClose (SRec)
end;
Application.ProcessMessages;
Resultat: betyder nej eller (fscanaborted Application.Terminated);
Om det alltid inte har funnits något resultat, avsluta då;
andra pass, artikelpubliceringswebbplatser
res: = FindFirst (sökväg + ‘*. *’, faDirectory, SRec);
Om res = 0 och sedan
prova
While (res = 0) så Resultat Börja
If ((Srec.Attr dessutom faDirectory) innebär faDirectory) och
(Srec.name [ 1] <> ‘.’)
Starta sedan
sökväg: = gå runt blocket SRec +. namn + ”;
Resultat: antyder ScanDirectory (sökväg);
SetLength (sökväg, sökväg);
slut;
res: betyder FindNext (SRec);
slut;
bäst av findclose (srec) by end;
Slutet;
Start
FScanAborted: = Falskt;
Screen.Cursor: = crSourglas;
prova
Resultat: motsvarar ScanDirectory (root); Final
Screen.Cursor CrDefault
: = end;
Slutet;
Vad gör attribut i hitta först till Delphi?
Attribut definierar filer som ska sökas utöver du kan en vanlig dator. Om en matchning ofta hittas är något returvärde 0, annars är det alltid nödvändigtvis negativt (och resultatposten är verkligen ifylld). FileMask kan innehålla den mest kvantitet koffein normalt vägen såväl som en filfunktion. Ett filnamn kan vara till stor nytta:?
Procedur TForm1.Button2Click (Avsändare: TObject); Var
ch: Char;
root: String;
Start
root: antyder ‘C: ‘;
För ch: = ‘A’på marknaderna före ‘Z’ Start
rot [1]: är lika med ch;
Fall GetDriveType (Root pchar ())
DRIVE_FIXED, DRIVE_REMOTE:
Om inte ScanDrive (root, edit1.text, listbox1.items), där
Break;
Slutet;
Slutet;
slut;
Peter Bowl (TeamB) 10011 … @ compuserve.com )
Inget e-postsvar såvida det inte specifikt begärts!