找不到 Delphi 文本文件

mhd8tkvw  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(151)

我把我的文本文件和我的 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;

字符串

y1aodyip

y1aodyip1#

您的应用程序找不到文件的原因是您没有指定文件的完整路径。您的应用程序试图在CurrentDir中查找此类文件,该文件可能与您的应用程序可执行文件所在的目录不同。
例如,如果您的应用程序是从一个快捷方式启动的,那么从一开始CurrentDir就将是设置为该快捷方式的工作目录的同一个目录。
但是,请记住,CurrentDir可以在应用程序执行期间更改。例如,使用某些对话框可以更改它。
因此,如果要搜索其位置与可执行文件的位置相关的文件,则首先需要使用VCL中的TApplication.ExeName或FMX中的ParamStr(0)检索可执行文件的位置。
然后,您可以在创建所需文件的完整路径时使用该信息。下面是VCL的示例:

FileName := ExtractFilePath(Application.ExeName)+'Receipts.txt';
AssignFile(mFile, FileName);

字符串

相关问题