Einzelnen Beitrag anzeigen

Benutzerbild von kwhk
kwhk

Registriert seit: 25. Mär 2009
Ort: Dresden
168 Beiträge
 
Delphi 10.3 Rio
 
#1

Dateinamen mit UTF-8-Zeichen aus Directory lesen

  Alt 5. Jul 2019, 11:56
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&#55357;&#56476;C
02.07.2019  08:33    <DIR>         DE&#8364;F
30.08.2018  21:05            72.931 Hase Handy&#55357;&#56476; 5&#8364; Test.jpg
Zitat:
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
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 ?
Hartmut

Geändert von kwhk ( 5. Jul 2019 um 12:04 Uhr)
  Mit Zitat antworten Zitat