FindFirst / FindNext auf schreibgeschützten Netzwerkfreigaben

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
tolleware
Beiträge: 9
Registriert: Fr 1. Mär 2024, 13:45

FindFirst / FindNext auf schreibgeschützten Netzwerkfreigaben

Beitrag von tolleware »

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 !

Benutzeravatar
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

Beitrag von fliegermichl »

Du solltest den Rückgabewert von Findfirst auch an Info zuweisen, ansonsten ist dessen Inhalt undefiniert.

RudiRatlos
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

Beitrag von RudiRatlos »

vielleicht eine dumme Bemerkung...

aber steht in der 2. Zeile in der Variablen Dir auch das richtige drin?

Benutzeravatar
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

Beitrag von Zvoni »

fliegermichl hat geschrieben: Di 27. Aug 2024, 10:08 Du solltest den Rückgabewert von Findfirst auch an Info zuweisen, ansonsten ist dessen Inhalt undefiniert.
Macht er doch ("Info" als drittes Argument) --> https://www.freepascal.org/docs-html/rt ... first.html
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.

CCRDudeLaz
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

Beitrag von CCRDudeLaz »

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)

Antworten