Hallo,
ich bin etwas verzweifelt, denn ich lese ein Verzeichnis komplett ein und zähle die Unterverzeichnisse:
Count ;= 0;
If FindFirst (Dir+'\'+FileMask,faAnyFile,Info)=0 then
Repeat
With Info do
begin
If (Attr and faDirectory) = faDirectory then Inc(Count);
end;
Until FindNext(info)<>0;
FindClose(Info);
Starte ich das Programm auf Laufwerk C: wird die Anzahl der Verzeichnisse (Count) ausgegeben.
Starte ich das Programm auf einem per "net use X: \\server\freigabe" gemappten Laufwerk (dessen Eigenschaften sind ReadOnly für alle Remote-User, d.h. es darf nur gelesen und nicht geschrieben werden), wird immer 0 ausgegeben, obwohl es dort Verzeichnisse gibt (und "dir X:\" zeigt was an).
Wieso werden die Verzeichnisse nicht gezählt, d.h. immer 0 als Ergebnis angezeigt ?
Was mache ich falsch ?
Ich hoffe auf eine rasche Antwort - Danke !
FindFirst / FindNext auf schreibgeschützten Netzwerkfreigaben
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1639
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: FindFirst / FindNext auf schreibgeschützten Netzwerkfreigaben
Du solltest den Rückgabewert von Findfirst auch an Info zuweisen, ansonsten ist dessen Inhalt undefiniert.
-
- Beiträge: 26
- Registriert: Sa 21. Sep 2019, 13:02
- OS, Lazarus, FPC: Windows 11, lazarus 3.8, FPC: 3.2.2
- CPU-Target: 64Bit
- Wohnort: München
Re: FindFirst / FindNext auf schreibgeschützten Netzwerkfreigaben
vielleicht eine dumme Bemerkung...
aber steht in der 2. Zeile in der Variablen Dir auch das richtige drin?
aber steht in der 2. Zeile in der Variablen Dir auch das richtige drin?
- Zvoni
- Beiträge: 371
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
- CPU-Target: 32Bit
- Wohnort: BW
Re: FindFirst / FindNext auf schreibgeschützten Netzwerkfreigaben
Macht er doch ("Info" als drittes Argument) --> https://www.freepascal.org/docs-html/rt ... first.htmlfliegermichl hat geschrieben: Di 27. Aug 2024, 10:08 Du solltest den Rückgabewert von Findfirst auch an Info zuweisen, ansonsten ist dessen Inhalt undefiniert.
Der Rückgabewert ist 0 ("hab etwas gefunden") bzw. ungleich 0 (Fehler)
Meine Vermutung liegt eher bei "Dir" (wie schon erwähnt) bzw. "FileMask"
da oben gezeigter Code fast 1:1 zum Beispiel in meinem Link ist
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
-
- Beiträge: 54
- Registriert: Do 25. Jan 2024, 08:33
- OS, Lazarus, FPC: Win/macOS (L trunk FPC trunk)
- CPU-Target: 32+64
Re: FindFirst / FindNext auf schreibgeschützten Netzwerkfreigaben
Das "übliche": testet Du in der IDE, und die ist elevated?
Netzwerkfreigaben sind nicht "automatisch" elevated und non-elevated verbunden.
(ich habe immer den Total Commander installiert und starte den elevated/non-elevated, um den Zugriff bei sowas zu prüfen. Ggfls. verbindet er dann automatisch, die Login-Informationen sind ja gespeichert und das Laufwerk ist nach dem mappen auch schon da, nur halt noch unverbunden)
Netzwerkfreigaben sind nicht "automatisch" elevated und non-elevated verbunden.
(ich habe immer den Total Commander installiert und starte den elevated/non-elevated, um den Zugriff bei sowas zu prüfen. Ggfls. verbindet er dann automatisch, die Login-Informationen sind ja gespeichert und das Laufwerk ist nach dem mappen auch schon da, nur halt noch unverbunden)