Durch Zufall bin ich darauf gestoßen, dass Dateinamen u.U. auch solche Zeichen enthalten können:
https://www.compart.com/de/unicode/U+1F49C
Ich hab ein Compare-Programm, mit dem ich die Directorys auslese und die Dateien mit einem anderen Directory vergleiche.
Die Dateien vom Smartphone, wo junge Leute gern solche Zeichen in ihren Namen aufnehmen und wo diese dann in Dateinamen stehen, lassen sich mit meinem Programm nicht vergleichen, weil aus dem Record von FindFirst / FindNext mittels Record.name nicht die UTF-8-Zeichen, sondern stattdessen Fragezeichen übergeben werden.
Der "normale" DIR Befehl liefert folgende Anzeige (analog FindFirst/FindNext)
Code:
02.07.2019 08:32 <DIR> AB??C
02.07.2019 08:33 <DIR> DE?F
30.08.2018 21:05 72.931 Hase Handy?? 5? Test.jpg
Wenn ich den DIR-Befehl folgendermaßen ausführe, kommt ein UTF-8 Ergebnis
(Leider werden diese Zeichen bei [ Code ] hier im Forum nicht angezeigt, bei [ Quote ] schon
Code:
chcp 65001
DIR *.* >#dir65001.dir
02.07.2019 08:32 <DIR> AB��C
02.07.2019 08:33 <DIR> DE€F
30.08.2018 21:05 72.931 Hase Handy�� 5€ Test.jpg
Zitat:
chcp 65001
DIR *.* >#dir65001.dir
02.07.2019 08:32 <DIR> ABC
02.07.2019 08:33 <DIR> DE€F
30.08.2018 21:05 72.931 Hase Handy 5€ Test.jpg
Ich habe es mit Csharp ( C# ) probiert
Code:
DirectoryInfo N1dirInfo = new DirectoryInfo(pN1Dir); // Directory
FileInfo[] N1FileArr = N1dirInfo.GetFiles(); // Datei-Informationen
DirectoryInfo[] N1DirArr = N1dirInfo.GetDirectories("*.*"); // Unterordner-Informationen
Da bekomme ich die korrekten Dateinamen und kann damit diese Dateien auch verarbeiten.
Gibt es in Delphi auch eine etwas modernere Funktion, mit der man Directorys lesen kann,
also Dateinamen und auch Directory-Namen mit UTF-8 Zeichen ?