Delphi ANSI和UTF8文件名

时间:2017-08-27 14:13:16

标签: delphi delphi-7

我正在创建一个程序来组织我的文件(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 ++中粘贴文件名。

0 个答案:

没有答案