关于列表:Lazarus SaveToFile不起作用

Lazarus SaveToFile not working

我一直在为游戏编写代码,在实现保存选项时偶然发现了一个问题。我一直将所有动作保留在TStringList中,单击按钮后想保存用户选择的列表,但是我一直收到错误

"无法创建文件" C:\\\\ User \\\\ Admin \\\\ etc ...",我无法完全找到原因。这是我的一些代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure THistory.setName(name : String);
begin
  fileName := name;
end;

procedure THistory.save();
begin
  movesList.SaveToFile(fileName)
end

procedure TGameForm.saveButtonClick(Sender: TObject);
begin
  if saveDialog.Execute then begin
     history.setName(saveDialog.FileName);
     history.save();
  end;
end;

欢迎任何帮助。

我正在运行Windows 7 64位操作系统,消息如下:Project Pi?ka引发带有消息的异常类'EFCreateError':无法创建文件" C:\\\\ User \\\\ Admin \\\\ Desktop \\\\ Pi?ka \\\\ save \\\\ save1.sav"


也许在该用户目录的路径中有Unicode值。如果是这样,您可能需要为Windows应用程序使用lasutf8utils库中的各种utf8函数。 Linux不受影响。尝试先保存到常规ascii路径,例如c:\\\\\\\\ temp,然后查看它是否有效。如果这样做,那就是原因。因此,请尝试utf8toutf16(path)


您是否尝试以管理员身份运行程序?
在项目选项→执行级别中,尝试设置为要求管理员。
要在lazarus中运行程序,请以管理员身份重新打开lazarus。


然后问题出在"?" " Pi?ka ",将路径更改为仅ansi字符或使用FileUtil的UTF8toSys()