ExeName (C++)
Description
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.
Code
#include <memory> //For STL auto_ptr class
void __fastcall TForm1::Save1Click(TObject *Sender)
{
String temp1 = Edit4->Text;
String temp2 = ExtractFileName(Edit1->Text);
String NewFileName = temp1 + temp2;
String OldFileName =
Edit3->Text + ExtractFileName(Edit2->Text);
String 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);
}
}
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Edit3->Text = ExtractFilePath(Application->ExeName);
Edit4->Text = Edit3->Text;
}
Uses
- Vcl.Forms.TApplication.ExeName ( fr | de | ja )
- System.Classes.TStream.CopyFrom ( fr | de | ja )
- System.SysUtils.ExtractFilePath ( fr | de | ja )
- System.AnsiStrings.ExtractFilePath ( fr | de | ja )
- System.SysUtils.Format ( fr | de | ja )
- System.AnsiStrings.Format ( fr | de | ja )
- Vcl.Forms.Application ( fr | de | ja )