我将文本文件保存在与 Delphi 项目相同的文件夹中,但是当我测试该文件是否存在时,它仍然说它不存在。我已经尝试了我所知道的在网上可以找到的所有方法,但没有任何效果。
谁能告诉我问题出在哪里?
这是当前代码:
var
iMessage, iCount: integer;
mFile: Textfile;
sLine: string;
begin
iMessage := MessageDlg('Save receipt to ' + arrMonth[1], mtCustom,
[mbYes, mbNo, mbCancel], 0);
if iMessage = mrYes then
begin
AssignFile(mFile, 'Receipts.txt');
if NOT FileExists('Receipts.txt') then
begin
ShowMessage('File does not exist');
end;
Append(mFile);
for iCount := 0 to redReceipt.Lines.Count - 1 DO
begin
sLine := redReceipt.Lines[iCount];
Writeln(mFile, sLine);
end;
Writeln(mFile, '////////////////');
CloseFile(mFile);
end;
您的应用程序找不到您的文件的原因是您没有指定文件的完整路径。因此,您的应用程序正在尝试在
CurrentDir
中查找此类文件,该文件可能与您的应用程序的可执行文件所在的目录不同。
例如,如果您的应用程序一开始就从快捷方式启动,则
CurrentDir
将与设置为该快捷方式的工作目录相同的目录。
但请记住,
CurrentDir
在应用程序执行期间可能会发生变化。使用某些对话框会改变它。
因此,如果您要搜索位置与可执行文件位置相关的文件,您首先需要在 VCL 中使用 TApplication.ExeName 或在 FMX 项目中使用
ParamStr(0)
检索可执行文件的位置。
然后,您可以在创建所需文件的完整路径时使用该信息。这是 VCL 的示例。
FileName := ExtractFilePath(Application.ExeName)+'Receipts.txt';
AssignFile(mFile, FileName);