Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi SaveToFile, TFileStream.Create, FileCreate - SeparatorChar (https://www.delphipraxis.net/217175-savetofile-tfilestream-create-filecreate-separatorchar.html)

t2000 14. Mai 2025 09:55

SaveToFile, TFileStream.Create, FileCreate - SeparatorChar
 
Moin,

sagt mal, war das schon immer so?

Ich habe durch Zufall einen String "D:\test1\ordner2\pfad/unterpfad/datei.xyz" als Dateiname angegeben.

Der Wechsel von \ zu / war wirklich so (ähnlich).

TStringlist.SaveToFile schluckt das problemlos.
Intern wird TFileStream.Create aufgerufen und das wiederum den API Call FileCreate.
https://learn.microsoft.com/de-de/wi...pi-createfilea

In der Microsoft Hilfe steht auch das es egal ist, ob \ oder /

Ist jetzt nur mal so eine Feststellung. Darauf verlassen werde ich mich nicht und den Sourcecode ändern aber war mir bisher unbekannt.

VG

Redeemer 14. Mai 2025 10:01

AW: SaveToFile, TFileStream.Create, FileCreate - SeparatorChar
 
NTFS unterstützt nur "/"(!). Windows wrappt das.
Spannend wäre jetzt, ob es auf FAT funktioniert.

jaenicke 14. Mai 2025 11:24

AW: SaveToFile, TFileStream.Create, FileCreate - SeparatorChar
 
Zitat:

Zitat von t2000 (Beitrag 1548612)
sagt mal, war das schon immer so?

Auf der NT-Schiene ging das schon vor Windows 2000 und in allen Versionen bis heute. Win9x und früher hingegen basierten auf MS-DOS, weshalb das dort nicht ging.

himitsu 14. Mai 2025 15:17

AW: SaveToFile, TFileStream.Create, FileCreate - SeparatorChar
 
Ja, Windows/DateiSystemTreiber sollten damit klarkommen.
Bezüglich Netzlaufwerken (SMB, NFS usw.) geht es oft auch (kann aber auch knallen), nur für FTP gab es IMHO öfters Probleme.

Aber einige Funktionen im Delphi verwenden explizit Delphi-Referenz durchsuchenPathDelim, weswegen es teilweise wirklich nur mit \ und nicht auch mit / funktioniert.
TStream/TFileStream sollte aber selbst nichts diesbezüglich behandeln, weswegen hier eigentlich nur das Verhalten des OS (MSDN-Library durchsuchenCreateFile) greifen sollte .... also egal.

Zitat:

Zitat von Redeemer (Beitrag 1548613)
Spannend wäre jetzt, ob es auf FAT funktioniert.

FAT32 und exFAT ja
FAT12/FAT16 keine Ahnung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:12 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