我正在创建一个程序来组织我的文件(Windows 10下的Delphi 7)。
这是我获取文件的例程:
procedure GetAllFiles(mask: string);
{type
TFileName = type UTF8String; }
var
search: TSearchRec;
directory: string;
fn : string;
begin
directory := ExtractFilePath(mask);
// find all files
if FindFirst(mask, $23, search) = 0 then
begin
repeat
// add the files to the listbox
Form1.StringGrid1.Cells[0,Count] := IntToStr(Count);
fn := (search.Name);
Form1.StringGrid1.Cells[1,Count] := directory + search.Name;
//Form1.ListBox1.Items.Add(directory + search.Name);
Inc(Count);
until FindNext(search) <> 0;
end;
// Subdirectories/ Unterverzeichnisse
if FindFirst(directory + '*.*', faDirectory, search) = 0 then
begin
repeat
if ((search.Attr and faDirectory) = faDirectory) and (search.Name[1] <> '.') then
GetAllFiles(directory + search.Name + '\' + ExtractFileName(mask));
until FindNext(search) <> 0;
FindClose(search);
end;
end;
我的例程正常,但有时文件名有问题。例如:
使用Windows资源管理器的文件名: 37远★东方运动 - 像G6.mp3
德尔福正在展示: 37远东运动 - 就像一个G6.mp3
我认为问题是:Delphi正在使用ANSI,但名称是UFT8。我想在Notepad ++中粘贴文件名。