RAD Studio VCL Reference
|
Returns the drive and directory portions of a file name.
function ExtractFilePath(const FileName: string): string; overload;
AnsiString ExtractFilePath(const AnsiString FileName);
The resulting string is the leftmost characters of FileName, up to and including the colon or backslash that separates the path information from the name and extension. The resulting string is empty if FileName contains no drive and directory parts.
This function works for multi-byte character systems (MBCS).
C++ Examples:
/* This example copies a specified old file to a new file. Add a TSaveDialog to the form. Also add two TEdits, two TLabels and a TButton with the OnClick event named Save1Click. Change the Old Path and New Path to move files outside the Debug directory, Old File and New File will not take a relative path. */ #include <memory> //for STL auto_ptr class void __fastcall TForm1::Save1Click(TObject *Sender) { AnsiString temp1 = Edit4->Text; AnsiString temp2 = ExtractFileName(Edit1->Text); AnsiString NewFileName = temp1 + temp2; AnsiString OldFileName = Edit3->Text + ExtractFileName(Edit2->Text); AnsiString Msg = Format("Copy %s to %s", ARRAYOFCONST((OldFileName, NewFileName))); if (MessageDlg(Msg, mtCustom, TMsgDlgButtons() << mbOK << mbCancel, 0) == mrOk) { std::auto_ptr<TFileStream> OldFile(new TFileStream(OldFileName, fmOpenRead | fmShareDenyWrite)); std::auto_ptr<TFileStream> NewFile(new TFileStream(NewFileName, fmCreate | fmShareDenyRead)); NewFile->CopyFrom(OldFile.get(), OldFile->Size); } } void __fastcall TForm1::FormCreate(TObject *Sender) { Edit3->Text = ExtractFilePath(Application->ExeName); Edit4->Text = Edit3->Text; }
/* The following code prompts for confirmation before deleting a file. Create a file and then click on the button to select the file with a TOpenDialog. Click Yes to delete it. */ void __fastcall TForm1::Button1Click(TObject *Sender) { OpenDialog1->Title = "Delete File"; if (OpenDialog1->Execute()) { if (FileExists(OpenDialog1->FileName)) { if (MessageDlg( ("Do you really want to delete " + ExtractFileName(OpenDialog1->FileName) + "?"), mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0, mbNo) == mrYes) DeleteFile(OpenDialog1->FileName); } else MessageDlg(("File " + ExtractFileName(OpenDialog1->FileName) + " does not exist."), mtConfirmation, TMsgDlgButtons() << mbOK, 0); } }
Delphi Examples:
{ This example copies a specified old file to a new file. Add a TSaveDialog to the form. Also add two TEdits, two TLabels and a TButton with the OnClick event named Save1Click. Change the Old Path and New Path to move files outside the Debug directory, Old File and New File will not take a relative path. } procedure TForm1.FormCreate(Sender: TObject); begin Edit3.Text := ExtractFilePath(Application.ExeName); Edit4.Text := Edit3.Text; end; procedure TForm1.Save1Click(Sender: TObject); var NewFileName, OldFileName: string; temp1, temp2: string; Msg: string; NewFile: TFileStream; OldFile: TFileStream; begin temp1 := Edit4.Text; temp2 := ExtractFileName(Edit1.Text); NewFileName := temp1 + temp2; OldFileName := Edit3.Text + ExtractFileName(Edit2.Text); Msg := Format('Copy %s to %s?', [OldFileName, NewFileName]); if MessageDlg(Msg, mtCustom, mbOKCancel, 0) = mrOK then begin OldFile := TFileStream.Create( OldFileName, fmOpenRead or fmShareDenyWrite); try NewFile := TFileStream.Create( NewFileName, fmCreate or fmShareDenyRead); try NewFile.CopyFrom(OldFile, OldFile.Size); finally FreeAndNil(NewFile); end; finally FreeAndNil(OldFile); end; end; end;
{ The following code prompts for confirmation before deleting a file. Create a file and then enter the path and file name in the textfields. Click the button to delete it. } procedure TForm1.Button1Click(Sender: TObject); var FileName: string; begin Filename:= Edit1.Text; if SysUtils.FileExists(FileName) then begin if MessageDlg(('Do you really want to delete ' + ExtractFileName(FileName) + '?'), mtConfirmation, [mbYes, mbNo], 0, mbNo) = IDYes then DeleteFile(FileName); end else MessageDlg(('File ' + ExtractFileName(FileName) + ' does not exist.'), mtConfirmation, [mbOK], 0); end; procedure TForm1.FormCreate(Sender: TObject); begin Edit2.Text:= ExtractFilePath(Application.ExeName); end;
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
|
What do you think about this topic? Send feedback!
|