我一直在为游戏编写代码,在实施保存选项时我偶然发现了一个问题。我一直在TStringList中保留所有移动,并且在点击按钮后想要保存用户选择的列表,但我一直收到错误
“无法创建文件”C:\ User \ Admin \ etc ...“”我无法找到原因。以下是我的一些代码:
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位,消息如下:ProjectPiłka引发异常类'EFCreateError',并显示以下消息:无法创建文件“C:\ User \ Admin \ Desktop \Piłka\ save \ save1.sav”< / p>
答案 0 :(得分:1)
也许您在该用户目录的路径中有Unicode值。如果是这样,您可能需要在lasutf8utils库中为Windows应用程序使用各种utf8函数。 Linux不受影响。尝试保存到常规的ascii路径,首先像c:\ temp,看看它是否有效。如果确实如此,那就是原因。那么请尝试utf8toutf16(路径)
答案 1 :(得分:0)
您是否尝试过以管理员身份运行程序? 在项目选项→执行级别尝试设置为要求管理员。 要在lazarus中运行程序,请以管理员身份重新打开lazarus。
答案 2 :(得分:-1)
问题是“ł”“Piłka”,将路径改为ansi chars或使用FileUtil的UTF8toSys()