📄 fselectdirectoryfile.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "FSelectDirectoryFile.h"
#include <FileCtrl.hpp>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmSelectDirectory *frmSelectDirectory;
//---------------------------------------------------------------------------
__fastcall TfrmSelectDirectory::TfrmSelectDirectory(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmSelectDirectory::SpeedButton1Click(TObject *Sender)
{
TSpeedButton* sbSelect = dynamic_cast<TSpeedButton*>(Sender) ;
AnsiString Dir = "" ;
SelectDirectory(Dir, TSelectDirOpts() << sdAllowCreate << sdPerformCreate << sdPrompt,1000) ;
if( sbSelect->Tag == 1 )
edSourceDirectory->Text = Dir ;
else
edAimDirectory->Text = Dir ;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSelectDirectory::bitOKClick(TObject *Sender)
{
Screen->Cursor = crHourGlass ;
TStringList * sList = new TStringList ;
FindFile( sList, edSourceDirectory->Text ) ;
TStringList * sList1 = new TStringList ;
TStringList * sList2 = new TStringList ;
AnsiString sFilePath, sFileName ;
while( sList->Count > 0 )
{
sFilePath = sList->Strings[0] ;
sList->Delete(0) ;
if( FileExists( sFilePath ) )
{
sList1->LoadFromFile(sFilePath) ;
sFileName = ExtractFileName( sFilePath ).LowerCase() ;
for( int i = 0; i < sList->Count; ++i )
{
sFilePath = sList->Strings[i] ;
if( sFileName == ExtractFileName( sFilePath ).LowerCase() )
{
sList->Delete(i) ;
--i ;
if( FileExists( sFilePath ) )
{
sList2->LoadFromFile(sFilePath) ;
sList1->Add(sList2->Text) ;
}
} // end if
} // end for
sList1->SaveToFile( edAimDirectory->Text + "\\" + sFileName ) ;
} // end if
} // end while
delete sList1 ;
delete sList2 ;
delete sList ;
Screen->Cursor = crDefault ;
ShowMessage("处理完成") ;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSelectDirectory::FindFile(TStringList* sList, AnsiString sDir)
{
WIN32_FIND_DATA wfd ;
HANDLE hFind ;
AnsiString sFileName = sDir + "\\*.*" ;
try
{
hFind = FindFirstFile( sFileName.c_str(), &wfd ) ;
if( hFind != INVALID_HANDLE_VALUE )
{
do
{
if( AnsiString(wfd.cFileName) != "." && AnsiString(wfd.cFileName) != ".." )
{
if( wfd.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY ) //目录
{
FindFile( sList, sDir + "\\" + wfd.cFileName ) ;
}else
{
if( ExtractFileExt( wfd.cFileName ).LowerCase() == ".txt" )
{
sList->Add(sDir + "\\" + wfd.cFileName) ;
}
}
}
}while ( FindNextFile( hFind, &wfd) ) ;
}
}
__finally
{
FindClose( hFind ) ;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -