![]() |
✔ Kann über WinApi kein Verzeichnis erstellen, über Explorer schon
Folgendes Programm kann kein Verzeichnis erstellen:
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE} uses System.SysUtils, System.IOUtils, WinApi.Windows; const name = 'helloWorld'; begin TFile.Create(name); if not System.SysUtils.CreateDir(name) then WriteLn( SysErrorMessage( GetLastError() ) ); ReadLn; end.
Delphi-Quellcode:
ist im Endeffekt nur ein Alias für
System.SysUtils.CreateDir(..)
Delphi-Quellcode:
.
Winapi.Windows.CreateDirectoryW(PChar(name), nil)
Es gibt False zurück und meint die Datei würde schon existieren. Richtig, die Datei existiert. Sollte aber niemanden stören, schließlich will ich ein Verzeichnis anlegen, keine Datei! Im Explorer hingegen kann ich problemlos ein Verzeichnis mit dem Namen "helloWorld" anlegen. Was stimmt hier nicht? Ich habe in der ![]() |
AW: Kann über WinApi kein Verzeichnis erstellen, über Explorer schon
Liste der Anhänge anzeigen (Anzahl: 1)
Im Explorer geht das auch nicht, wenn eine Datei mit gleichem Namen im Ordner existister.
Die Datei heißt bei Dir helloWorld ohne irgendwelche Extension. Grüße Klaus |
AW: Kann über WinApi kein Verzeichnis erstellen, über Explorer schon
Ich muss irgend etwas Dummes übersehen haben, tatsächlich.
Vielen Dank, wieder was gelernt. |
AW: Kann über WinApi kein Verzeichnis erstellen, über Explorer schon
Es kann in einem Verzeichnis immer nur ein Objekt mit demselben Namen geben, sei es Datei, Verzeichnis, Symlink oder Hardlink. Wie sollte sonst eine Referenzierung eines Objekts möglich sein, wenn mehrere mit demselben Namen existieren, die Referenzierung aber per Name passiert? Das geht schlicht nicht. Daher ist es nicht möglich, in einem Verzeichnis mehrere Objekte desselben Namens anzulegen. Und ich kenne auch keine Plattform und Dateisystem, bei dem das ginge, solange das Objekt ausschließlich per Name angesprochen wird.
BTW: Ein Verzeichnis ist letztlich auch nur eine Datei mit einem zusätzlichen Attribut. Grüße Dalai |
AW: ✔ Kann über WinApi kein Verzeichnis erstellen, über Explorer schon
Nicht nur dass eine gleichnamige Datei existiert ... die ist/bleibt auch noch geöffnet.
TFile.Create ohne Freigabe des Streams? Und relative Pfade, ohne definiertem Urspung (CurrentDirectory), sind sowieso immer eine echt dumme Idee. Zitat:
In einem deutschen Windows gibt es C:\Programm Files, welches als C:\Programme angezeigt wird, und es gibt auch nochmal ein C:\Programme als unsichtbaren "Link" (hidden+system), damit keiner auf die blöde Idee kommt etwas in C:\Programme speichern zu wollen. |
AW: ✔ Kann über WinApi kein Verzeichnis erstellen, über Explorer schon
Zitat:
|
AW: Kann über WinApi kein Verzeichnis erstellen, über Explorer schon
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz