在 delphi 中取消文件对话框时如何防止 I/O 6
How do you prevent I/O 6 when canceling a filedialog in delphi
在我的程序中,我有一个打开文件对话和一个保存文件对话。每当我在这些对话框中按取消时,我都会收到 I/O 错误 6。如何删除此错误?
procedure TForm1.Open1Click(Sender: TObject);
var
s: string;
// Declares a file type for storing lines of text
t: TextFile;
begin
mmo1.Lines.Clear;
// Set up the starting directory to be the current one
dlgOpen1.InitialDir := 'Libraries\Documents';
// Opens the file Dialogue
dlgOpen1.Execute;
// Assigns contents of the chosen
AssignFile(t, dlgOpen1.FileName);
// Opens a file given by FileHandle for read, write or read and write access
// Must use AssignFile to assign a file to the FileHandle before using Reset
Reset(t);
// The While keyword starts a control loop that is executed as long as the
// - Expression is satisfied (returns True)
// The Eof function returns true if the file given by FileHandle is at the end
// All this essentialy adds the contents of the text file, line by line until
// - there is no more text to be added
while not Eof(t) do
begin
// Reads a complete line of data from a text file
Readln(t, s);
mmo1.Lines.Add(s);
end;
CloseFile(t);
end;
你必须做到:
if dlgOpen1.Execute then
begin
// ...all your file management here
end;
dlgOpen1.execute return 如果用户取消对话则为 false。
您必须检查 dlgOpen1.Execute
的 return 值:
if not dlgOpen1.Execute then
Exit;
在我的程序中,我有一个打开文件对话和一个保存文件对话。每当我在这些对话框中按取消时,我都会收到 I/O 错误 6。如何删除此错误?
procedure TForm1.Open1Click(Sender: TObject);
var
s: string;
// Declares a file type for storing lines of text
t: TextFile;
begin
mmo1.Lines.Clear;
// Set up the starting directory to be the current one
dlgOpen1.InitialDir := 'Libraries\Documents';
// Opens the file Dialogue
dlgOpen1.Execute;
// Assigns contents of the chosen
AssignFile(t, dlgOpen1.FileName);
// Opens a file given by FileHandle for read, write or read and write access
// Must use AssignFile to assign a file to the FileHandle before using Reset
Reset(t);
// The While keyword starts a control loop that is executed as long as the
// - Expression is satisfied (returns True)
// The Eof function returns true if the file given by FileHandle is at the end
// All this essentialy adds the contents of the text file, line by line until
// - there is no more text to be added
while not Eof(t) do
begin
// Reads a complete line of data from a text file
Readln(t, s);
mmo1.Lines.Add(s);
end;
CloseFile(t);
end;
你必须做到:
if dlgOpen1.Execute then
begin
// ...all your file management here
end;
dlgOpen1.execute return 如果用户取消对话则为 false。
您必须检查 dlgOpen1.Execute
的 return 值:
if not dlgOpen1.Execute then
Exit;