未找到 Delphi 文本文件

问题描述 投票:0回答:1

我将文本文件保存在与 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;
delphi text-files delphi-2010 file-not-found
1个回答
0
投票

您的应用程序找不到您的文件的原因是您没有指定文件的完整路径。因此,您的应用程序正在尝试在

CurrentDir
中查找此类文件,该文件可能与您的应用程序的可执行文件所在的目录不同。

例如,如果您的应用程序一开始就从快捷方式启动,则

CurrentDir
将与设置为该快捷方式的工作目录相同的目录。

但请记住,

CurrentDir
在应用程序执行期间可能会发生变化。使用某些对话框会改变它。

因此,如果您要搜索位置与可执行文件位置相关的文件,您首先需要在 VCL 中使用 TApplication.ExeName 或在 FMX 项目中使用

ParamStr(0)
检索可执行文件的位置。

然后,您可以在创建所需文件的完整路径时使用该信息。这是 VCL 的示例。

FileName := ExtractFilePath(Application.ExeName)+'Receipts.txt';
AssignFile(mFile, FileName);
© www.soinside.com 2019 - 2024. All rights reserved.