view BackUpTool.cpp @ 1:f3fd4e19cec0 tip

first binary upload
author wenx <xue.wen@eecs.qmul.ac.uk>
date Wed, 10 Aug 2011 14:56:28 +0100
parents a6a46af64546
children
line wrap: on
line source
/*
    Harmonic Visualiser

    An audio file viewer and editor.
    Centre for Digital Music, Queen Mary, University of London.
    This file copyright 2011 Wen Xue.

    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
    published by the Free Software Foundation; either version 2 of the
    License, or (at your option) any later version. 
*/
//---------------------------------------------------------------------------

#include <vcl.h>
#include <filectrl.hpp>
#include <inifiles.hpp>
#pragma hdrstop

#include "BackUpTool.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#pragma link "vclx.lib"
TBackupForm1 *BackupForm1;
//---------------------------------------------------------------------------
__fastcall TBackupForm1::TBackupForm1(TComponent* Owner)
  : TForm(Owner)
{
  AnsiString ApplicationIni=ChangeFileExt(Application->ExeName, ".ini");
  TIniFile* Ini=new TIniFile(ApplicationIni);
  ExtText=Ini->ReadString("BackUpForm", "Ext", ".bpr .bpk .dfm .cpp .ini .dsk .h .hpp .res .rc .dcr");
  Edit1->Text=ExtText;
	Edit2->Text=Ini->ReadString("BackUpForm", "Rar", "WinRAR.exe");
	Edit3->Text=Ini->ReadString("BackUpForm", "Directory", ExtractFileDir(Application->ExeName));
  delete Ini;
}
//---------------------------------------------------------------------------
void __fastcall TBackupForm1::Button1Click(TObject *Sender)
{
	AnsiString Exts=Edit1->Text.LowerCase();
	AnsiString Dir=Edit3->Text;
  AnsiString TimeString=Now().FormatString("yymmddhhmmss");
  AnsiString TempDir="C:\\Temp\\"+ExtractFileName(Dir)+TimeString;
  if (!DirectoryExists(TempDir)) ForceDirectories(TempDir);

  SetCurrentDir(Dir);
  TSearchRec F;
  if (FindFirst("*.*", 0x2f, F)==0)
  {
    do
    {
      AnsiString FileName=F.Name;
      AnsiString FileExt=ExtractFileExt(FileName).LowerCase();
      if (Exts.Pos(FileExt)>0)
      {
        AnsiString NewFileName=TempDir+"\\"+FileName;
        CopyFile(FileName.c_str(), NewFileName.c_str(), false);
      }
    }
    while (FindNext(F)==0);
  }

  AnsiString ArchivName="..\\"+ExtractFileName(Dir)+TimeString+".rar";
  AnsiString command="\""+Edit2->Text+"\""+" a -r -ep1 "+ArchivName+" "+TempDir;
  Memo1->Lines->Add(AnsiString(">>")+ExtractFileName(ArchivName)+"...");
  system(command.c_str());
  Memo1->Lines->Add(">>");
  Memo1->Lines->Add("");
}
//---------------------------------------------------------------------------
void __fastcall TBackupForm1::Button2Click(TObject *Sender)
{
  Close();  
}
//---------------------------------------------------------------------------
void __fastcall TBackupForm1::Button3Click(TObject *Sender)
{
	OpenDialog1->FileName=Edit2->Text;
	OpenDialog1->FilterIndex=1;
	if (OpenDialog1->Execute())
	{
		Edit2->Text=OpenDialog1->FileName;
		AnsiString ApplicationIni=ChangeFileExt(Application->ExeName, ".ini");
		TIniFile* Ini=new TIniFile(ApplicationIni);
		Ini->WriteString("BackUpForm", "Rar", OpenDialog1->FileName);
		delete Ini;
	}
}
//---------------------------------------------------------------------------
void __fastcall TBackupForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
	if (Edit1->Text!=ExtText)
	{
		ExtText=Edit1->Text;
		AnsiString ApplicationIni=ChangeFileExt(Application->ExeName, ".ini");
		TIniFile* Ini=new TIniFile(ApplicationIni);
		Ini->WriteString("BackUpForm", "Ext", ExtText);
		Ini->WriteString("BackUpForm", "Directory", Edit3->Text);
		delete Ini;
  }
}
//---------------------------------------------------------------------------

void __fastcall TBackupForm1::Button4Click(TObject *Sender)
{
	OpenDialog1->FilterIndex=2;
	OpenDialog1->InitialDir=ExtractFileDir(Application->ExeName);
	if (OpenDialog1->Execute())
	{
		Edit3->Text=ExtractFileDir(OpenDialog1->FileName);
		AnsiString ApplicationIni=ChangeFileExt(Application->ExeName, ".ini");
		TIniFile* Ini=new TIniFile(ApplicationIni);
		Ini->WriteString("BackUpForm", "Directory", Edit3->Text);
		delete Ini;
	}

}
//---------------------------------------------------------------------------