![]() |
Directorys erstellen
Hi,
ich glaube ich brech gleich ab. Ich nutze (als beispiel) folgenden code um mehr als eine Directory anzulegen.
Delphi-Quellcode:
Was ich auch mache, ich bekomme immer die folgende fehlermeldung.
procedure TForm1.Button1Click(Sender: TObject);
begin ForceDirectories('E:\test\1\2\3'); end;
Code:
Es wird keine dir angelegt. Was mach ich falsch???
---------------------------
Project1 --------------------------- Fehler bei Bereichsprüfung. --------------------------- OK --------------------------- Vielen dank im voraus. |
AW: Directorys erstellen
Hat sich erledigt. Es lag an der SysUtils. Die war wohl für unix. :(
Trotzdem danke.... |
AW: Directorys erstellen
Bist Du sicher, dass der Fehler mit ForceDirectories zusammenhängt?
|
AW: Directorys erstellen
Jap, schau oben. Es wird ja nix anderes gemacht. Button klicken und dann kommt das was oben steht. Ich hatte wohl mal was an der Sysutils geändert und vergessen den Devinition MSWINDOWS reinzumachen. Ich glaub ich werd alt :roll:
|
AW: Directorys erstellen
Trotzdem sollte man prüfen ob die Verzeichnisse angelegt wurden:wink:
Delphi-Quellcode:
Gruss alfold
if not ForceDirectories(Dir) then
//konnten nicht ertellt werden, warum auch immer |
AW: Directorys erstellen
Das kommt auch rein. Ich hatte nur das beispiel so einfach wie möglich gehalten. Das prob war/ist, man findet nix über diesen fehler bei google. Deswegen war ich etwas verwirrt.
Und die einzige "anlaufstelle" die ich in solchen fällen habe ist halt dieses Forum hier. Das hat den grund, das man nicht immer gleich als blöde abgestempelt wird und gesagt bekommt "nutz die Boardsuche" oder änhlich. |
AW: Directorys erstellen
Zitat:
|
AW: Directorys erstellen
Zitat:
Wie es mit der Pro und darunter aussieht kann ich allerdings nicht sagen. Gruss alfold |
AW: Directorys erstellen
Hier mal der Code abschnitt.
Delphi-Quellcode:
function ForceDirectories(Dir: string): Boolean;
var E: EInOutError; begin Result := True; if Dir = '' then begin E := EInOutError.CreateRes(@SCannotCreateDir); E.ErrorCode := 3; raise E; end; Dir := ExcludeTrailingPathDelimiter(Dir); {$IFDEF MSWINDOWS} if (Length(Dir) < 3) or DirectoryExists(Dir) or (ExtractFilePath(Dir) = Dir) then Exit; // avoid 'xyz:\' problem. {$ENDIF} {$IFDEF LINUX} if (Dir = '') or DirectoryExists(Dir) then Exit; {$ENDIF} Result := ForceDirectories(ExtractFilePath(Dir)) and CreateDir(Dir); end; |
AW: Directorys erstellen
Dennoch hat das Linuxzeug eigentlich keine Auswirkung.
In Delphi 7 ist sind das nur die Codeabschnitte für Kylix 3, da zu großen Teilen die selben Quellcodes genutzt wurden. Seit einer Weile (so ab 2006 und 2009) gibt es in Delphi wieder vermehrt solche Codes anzutreffen, für Mac, Linux und Co., welches für den neuen Cross-Compiler (angeblich ab XE2) eingeügt wurde/wird. Standardmäßig sollte ein Ändern der VCL-Quellcodes auch keine Auswirkung auf die zu kompilierenden Programme haben, da diese Quellcodes nur für den CodeEditor und den Debugger, aber nicht für den Compiler sichtbar sind. uch werden standardmäßig keine VCL-Quellcodes neu kompiliert, selbst wenn man daran etwas ändert. (diese Änderung bringen höchstend den User durcheinander, da der Debugger dann schnell mal Mist anzeigt). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:48 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