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()