Autor Beitrag
hydemarie
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 487
Erhaltene Danke: 51



BeitragVerfasst: Di 02.12.25 11:45 
Ahoi,

mal ein etwas kryptisches Problem. Eigentlich geht's um Lazarus, aber in "Dateizugriff" passte es m.E. besser rein und so groß sind die syntaktischen Unterschiede ja nicht mehr. (Sonst notfalls in Free Pascal verschieben bitte.)

Was ich vorhabe:

  • Auf einem Netzlaufwerk befinden sich ein paar Dateien.
  • Das Netzlaufwerk ist momentan als Admin (sudo net use...) als V:\ eingebunden, aber das ist wahrscheinlich nicht so wichtig und könnte notfalls geändert werden.
  • Mein Programm soll im Wesentlichen alle Dateien auflisten, die auf diesem Netzlaufwerk herumliegen.


Ich scheitere derzeit noch. Zwei Szenarien habe ich ausprobiert:

  1. for A:\ to Z:\: FindAllFiles() behauptet, auf V:\ seien keine Dateien. Vielleicht, weil V:\ als DRIVE_NO_ROOT_DIR erkannt wird? (Warum?)
  2. GetLogicalDriveStrings: V:\ taucht gar nicht erst auf.


Ich schließe nicht aus, dass der erste Ansatz besser war. Aber wie bekomme ich die Anwendung jetzt dazu, dass FindAllFiles() funktioniert?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19333
Erhaltene Danke: 1750

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 03.12.25 11:08 
Du musst dein Programm ebenfalls als Admin starten, wenn das Netzlaufwerk nur im Admin-Kontext gemappt wurde. Im Benutzerkontext ohne Adminrechte existiert es dann schlicht nicht.
hydemarie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 487
Erhaltene Danke: 51



BeitragVerfasst: Do 04.12.25 02:02 
Die Anwendung läuft automatisch mit erhöhten Rechten, das ist bereits in die .exe hineinkompiliert. Daran liegt es also nicht (oder?).
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19333
Erhaltene Danke: 1750

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 04.12.25 07:23 
Ich habe das nicht getestet. Da bei der Anmeldung das Standardnutzer und Admintoken generiert werden, hätte ich gedacht, dass beide in der gleichen Umgebung laufen. Ich bin mir aber nicht sicher, wie lange das Netzlaufwerk lebt, wenn die Session nach dem net use wieder beendet wird.

Warum verwendest du eigentlich nicht einfach UNC-Pfade? Dann gibt es das Problem gar nicht erst.
hydemarie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 487
Erhaltene Danke: 51



BeitragVerfasst: Do 04.12.25 11:40 
Das Netzlaufwerk ist da und im Explorer komme ich auch ran. Das ist ja das Merkwürdige. Bei lokal angeschlossenen Festplatten funktioniert der Code.

Meine Anwendung ist nicht nur dafür da, dass ich damit klarkomme, das macht die Sache schwieriger. Ich muss also in jedem Fall die Laufwerksbuchstaben abbilden.