![]() |
Betriebssystem: Win 8.1
':' im Dateinamen - Bug oder Feature?
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo Wissende,
für ein Projekt habe ich mir eine .ini-Datei erstellt, um mir dort Dateinamen merken zu können. Diese Dateinamen haben den Namen des Projektes und eine fortlaufende Nummer. Aus Versehen habe ich den Projektnamen ungefiltert übernommen - und so hieß ein (Test-)Projekt: "Großer Test: Jetzt gehts":P Dem entsprechent sah auch meine .ini-Datei aus:
Code:
Als mir endlich auffiel: ':' im Namen geht ja garnicht:!:
[Parameter]
Projektname=Großer Test: Jetzt gehts SLDName=I:\Urlaubsfotos\2012.08.17-09.21 Aus.SA+Center\Vortrag\2. Testvortrag\TestVortrag.sld [MediaText] 0001_Text=Großer Test: Jetzt gehts_0001.rtf 0002_Text=Großer Test: Jetzt gehts_0002.rtf 0003_Text=Großer Test: Jetzt gehts_0003.rtf 0004_Text=Großer Test: Jetzt gehts_0004.rtf 0005_Text=Großer Test: Jetzt gehts_0005.rtf 0006_Text=Großer Test: Jetzt gehts_0006.rtf 0007_Text=Großer Test: Jetzt gehts_0007.rtf Aber: Es ging!:o Alle Text, die ich dort erfasst hatte ließen sich wieder aufrufen! Im Explorer sah die Datei allerdings so aus: http://www.delphipraxis.net/attachme...3&d=1436720600 Eine leere Datei mit dem Namen bis zum ':'! Wenn ich diese Datei gelöscht habe, hat mein Programm die die rtf-Dateien auch nicht mehr gefunden. Um dieses Phänomen etwas näher zu untersuchen habe ich mir ein Miniprojekt geschrieben (Siehe Anhang). Die beiden Routinen sehen dabei so aus:
Delphi-Quellcode:
Ich habe einen 4GB-USB-Stick mit NTFS formatiert und konnte auf diese Art und Weise etliche RTF-Dateien erzeugen und auch wieder lesen.! Zur Sicherheit habe ich dann noch eine größere Videodatei auf den Stick geladen und alle RTF-Dateien waren noch lesbar! So sieht es jetzt auf dem Stick aus:
procedure TForm1.Button1Click(Sender: TObject);
begin // SetCurrentDir(Edit1.Text); CurrentDocFile := Edit1.Text+'\'+Edit2.Text; RichEdit1.Lines.SaveToFile(CurrentDocFile); end; procedure TForm1.Button2Click(Sender: TObject); begin RichEdit1.Clear; end; procedure TForm1.Button3Click(Sender: TObject); begin // SetCurrentDir(Edit1.Text); CurrentDocFile := Edit1.Text+'\'+Edit2.Text; if FileExists(CurrentDocFile) then RichEdit1.Lines.LoadFromFile(CurrentDocFile) else ShowMessage('Datei "'+CurrentDocFile+'" nicht gefunden'); end; http://www.delphipraxis.net/attachme...5&d=1436721572 Diese Geschichte funktioniert nur unter NTFS! Ist der Stick mit FAT32 formatiert, bekomme ich sofort eine Fehlermeldung wegen ungültigen Dateinamens. Also: Ist dieses Verhalten von NTFS ein Bug oder ein Feature? |
AW: ':' im Dateinamen - Bug oder Feature?
Gugst du hier:
![]() |
AW: ':' im Dateinamen - Bug oder Feature?
Die Dateien mögen noch lesbar sein, aber die Inhalte sind im ADS zu finden und verschwinden kommentarlos beim Kopieren solcher Dateien auf andere Dateisysteme. Auch tauchen die Größen nirgendwo auf, d.h. ein ADS mit 4GB Größe ist von der Belegung des Dateisystems her einfach nicht vorhanden. Die wenigsten Tools können mit ADS umgehen, schon gar nicht der Explorer (der kann ja noch nicht einmal Junctions, Reparse Points & Co). Insofern sollte man ADS vermeiden, wo es geht.
MfG Dalai |
AW: ':' im Dateinamen - Bug oder Feature?
Zitat:
Zitat:
Ist schon interessant, wie man durch eigene Fehler auf solche Sachen stößt. Und somit ist meine Frage beantwortet: Es ist ein Feature:-D |
AW: ':' im Dateinamen - Bug oder Feature?
Zitat:
Zitat:
Zitat:
MfG Dalai |
AW: ':' im Dateinamen - Bug oder Feature?
Auf diese art und weiße, weiß Windows übrigens, ob du eine Datei(die du auf der Platte hast) ursprünglich aus einem Netzlaufwerk oder dem internet hast. Der datei wird ein ADS(eine Ini-Datei) angehangen, in der der Sourcetype spezifiziert ist ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:28 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