Genehmigt: Fortect
In diesem Artikel werden mein Ehepartner und ich einige mögliche Ursachen identifizieren, die zu Delphi Findfirst-Fehlercodes führen können, und dann auf einige Möglichkeiten hinweisen, das Problem zu beheben.
> Ich muss wissen, welcher Fehler aufgetreten ist, wenn die Datei nicht gefunden wird,
> und andere Fehler, die beim Üben der Funktionen findfirst und findnext auftreten können.
> Mit den beiden zu helfen sieht auch sehr danach aus. Kennt jemand gute
> Erfahrungen mit der Verwendung dieser Befehle. Vorzugsweise Dinge wie das Überwachen
> aller Dateien in einem Verzeichnis.
FindFirst to match In der FindFirstFile API führen Sie FindNext mit FindNextFile durch. Fehler
Zurückgeben der Zahlen, die Sie von einer dieser Versammlungen erwarten würden (von Windows. Nicht):
Das System kann die angegebene Datei nicht suchen.
ERROR_FILE_NOT_FOUND = 2;
Das System kann den angegebenen Pfad nicht finden.
ERROR_PATH_NOT_FOUND = 3;
Zugriff verweigert.
ERROR_ACCESS_DENIED bedeutet 5;
Warum tut Delphi fileexists funktioniert nicht unter Windows?
FileExists () Delphi führt zusätzliche Aktionen aus, wenn GetFileAttributes () nicht in der Lage ist – symbolische Links zu verarbeiten, auf Fehler beim Öffnen von Dateien zu prüfen, vielleicht auf FindFirstFile () zurückzugreifen – direkt um zu sehen, ob der Verlauf * tatsächlich * existiert oder alternativ nicht. Hoffentlich macht FreePascal FileExists() ein wenig so. Bei FileGetAttr hat es auch nicht geholfen.
Es gibt keine Fakten mehr.
ERROR_NO_MORE_FILES 18;
= Gerät nicht bereit.
ERROR_NOT_READY ist gleich 21;
Normalerweise müssen Sie nur 2 bekommen (wenn findfirst keine
die Maske fixiert) oder sogar 18 (wenn FindNext keine mehr
Info-Dateien ergibt gefunden werden, die möglicherweise mit der Maske übereinstimmen). 21 wird höchstwahrscheinlich erscheinen, wenn Sie versuchen, ein Disketten- oder CD-ROM-Laufwerk zu finden, das keine Diskette oder DVD enthält.
Auszug aus einer Erläuterung des Sortiments, hat eine Liste1 um die Einflüsse zu unterstützen
, ein Funktionslabel1 zum Ausführen, einen Button2 zum Einrichten eines Scans,
eine beliebige Verarbeitung1, damit sie die Suchmaske aufrufen können, eine Funktionstaste3, um einen vollständigen Scan-Stopp anzuzeigen
. kommerzielle
private Kleinanzeigen
FScanAborted: Boolean;
Genehmigt: Fortect
Fortect ist das weltweit beliebteste und effektivste PC-Reparaturtool. Millionen von Menschen vertrauen darauf, dass ihre Systeme schnell, reibungslos und fehlerfrei laufen. Mit seiner einfachen Benutzeroberfläche und leistungsstarken Scan-Engine findet und behebt Fortect schnell eine breite Palette von Windows-Problemen - von Systeminstabilität und Sicherheitsproblemen bis hin zu Speicherverwaltung und Leistungsengpässen.
Client
Öffentliche Ankündigungen
ScanDrive-Funktionen (Stamm, Dateimaske: String; Übereinstimmungsliste: TStrings): Boolean;
Funsection TForm1.ScanDrive (root, Dateimaske: String; Treffer notieren: TStrings): Boolean;
ScanDirectory-Angebot (Pfad zur Variablen: String): Boolean; Var
SRec: TSearchRec;
pathlen: ganze Zahl;
ers: ganze Zahl;
betrachten label1.caption: = path;
pathlen: = Weg (Weg);
zuerst die Dateien angeben
eers: = FindFirst (Pfad + Dateimaske, faAnyfile, SRec);
Wenn ers = 0 Dann
siehe
Während res = 0 Start
hitlist.Add (path + SRec.Name);
res: = FindNext (SRec);
Ende; final
FindClose (SRec)
end;
Application.ProcessMessages;
Ergebnis: = auch nein (fscanaborted Application.Terminated);
Wenn kein Hinweis vorhanden ist, verlassen Sie ihn;
zweiter Durchgang, Verzeichnisse
ers: = FindFirst (Pfad + ‘*. *’, faDirectory, SRec);
Wenn res = 0, dann
Versuch
While (res = 0) und Ergebnis Do Begin
If ((Srec.Attr und faDirectory), was bedeutet, dass faDirectory) und
(Srec.name [ 1] <> ‘.’)
Dann starte
Weg: = SRec + gehen. Name + ”;
Ergebnis: = ScanDirectory (Pfad);
SetLength (Pfad, Pfad);
Ende;
ers: bedeutet FindNext (SRec);
Ende;
final bei findclose (srec) by end;
Das Ende;
Start
FScanAborted: = False;
Screen.Cursor: entspricht crSourglas;
versuchen
Ergebnis: = ScanDirectory (root); Final
Screen.Cursor CrDefault
: ist gleich Ende;
Das Ende;
Was wählen Attribute in findfirst in Delphi?
Attribute, die Dateien definieren, die zusätzlich zu einem monatlichen Computer durchsucht werden sollen. Wenn eine Übereinstimmung gefunden wird, ist ein gewisser Rücksprungwert gleich 0, andernfalls ist er notwendigerweise sehr schlecht (und der Ergebnisdatensatz wird nicht normal gefüllt). FileMask kann den neuesten Pfad sowie eine Dateifunktion enthalten. Ein Dateiname kann möglicherweise von großem Nutzen sein:?
Prozedur TForm1.Button2Click (Absender: TObject); Var
ch: Char;
root: Zeichenfolge;
Start
root: = ‘C: ‘;
Für ch: = ‘A’auf dem Markt vor dem ‘Z’ Start
root [1]: = ch;
Fall GetDriveType (Root pchar ())
DRIVE_FIXED, DRIVE_REMOTE:
Wenn nicht ScanDrive (root, edit1.text, listbox1.items), möglicherweise
Break;
Das Ende;
Das Ende;
Ende;
Peter Bowl (TeamB) 10011 … @ compuserve.com )
Keine E-Mail-Reaktion, es sei denn, es wurde ausdrücklich angefordert!