2024-12-21 10:04:04 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////
|
|
|
|
|
|
// INCLUDE
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
#include "STDAFX.H"
|
|
|
|
|
|
#include "DIRECTORY.H"
|
|
|
|
|
|
#include "COMMONMACROS.H"
|
|
|
|
|
|
#include "BASESET.H"
|
|
|
|
|
|
#include "DEBUGUTIL.H"
|
|
|
|
|
|
#include "SAFESTRINGMACROS.H"
|
|
|
|
|
|
#include "STRINGSET.H"
|
|
|
|
|
|
#include <IO.H> // _access
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef _DEBUG
|
|
|
|
|
|
#define new new(_NORMAL_BLOCK,__FILE__,__LINE__)
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
const TCHAR CDirectory::m_szSourceDirectorySeperator[3] = {
|
|
|
|
|
|
_T('\\'),
|
|
|
|
|
|
_T(':'),
|
|
|
|
|
|
_T('\0'), // <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ڿ<EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////
|
|
|
|
|
|
// IMPLEMENTATION
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// TYPE : FUNCTION
|
|
|
|
|
|
// NAME : CDirectory::CDirectory
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// DESC : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
// PARM : N/A
|
|
|
|
|
|
// RETV : N/A
|
|
|
|
|
|
// PRGM : B4nFter
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
CDirectory::CDirectory()
|
|
|
|
|
|
{
|
|
|
|
|
|
Reset();
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// TYPE : FUNCTION
|
|
|
|
|
|
// NAME : CDirectory::~CDirectory
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// DESC : <20>Ҹ<EFBFBD><D2B8><EFBFBD>
|
|
|
|
|
|
// PARM : N/A
|
|
|
|
|
|
// RETV : N/A
|
|
|
|
|
|
// PRGM : B4nFter
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
CDirectory::~CDirectory()
|
|
|
|
|
|
{
|
|
|
|
|
|
// <20><>ü <20>Ҹ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʵ<EFBFBD> <20><><EFBFBD>츦 <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
End();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// TYPE : FUNCTION
|
|
|
|
|
|
// NAME : CDirectory::Reset
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// DESC : <20><>ü <20>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
// PARM : N/A
|
|
|
|
|
|
// RETV : N/A
|
|
|
|
|
|
// PRGM : B4nFter
|
|
|
|
|
|
// P.S.>
|
|
|
|
|
|
// - <20>ڵ<EFBFBD><DAB5><EFBFBD> <20>ݴ°<DDB4><C2B0><EFBFBD> <20>ƴϹǷ<CFB9> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
VOID CDirectory::Reset()
|
|
|
|
|
|
{
|
|
|
|
|
|
m_hFind = INVALID_HANDLE_VALUE;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// TYPE : FUNCTION
|
|
|
|
|
|
// NAME : CDirectory::Begin
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// DESC : Ư<><C6AF> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ư<><C6AF> <20><><EFBFBD>ϵ<EFBFBD> <20>˻<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
// PARM : 1 . lpszDirectoryFileName - <20>˻<EFBFBD><CBBB><EFBFBD> <20><><EFBFBD>ϰ<EFBFBD><CFB0><EFBFBD>
|
|
|
|
|
|
// RETV : NOERROR - <20><><EFBFBD><EFBFBD> / <20><EFBFBD> - <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
// PRGM : B4nFter
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
DWORD CDirectory::Begin(LPCTSTR lpszDirectoryFileName)
|
|
|
|
|
|
{
|
|
|
|
|
|
DN_ASSERT(!IsOpen(), "Already Called!");
|
|
|
|
|
|
// CHECK_STRING(lpszDirectoryFileName, DF_DIR_MAX_PATH);
|
|
|
|
|
|
|
|
|
|
|
|
if (INVALID_HANDLE_VALUE != m_hFind) {
|
|
|
|
|
|
return(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m_hFind = ::FindFirstFile(lpszDirectoryFileName, &m_stFindData);
|
|
|
|
|
|
if (INVALID_HANDLE_VALUE != m_hFind) {
|
|
|
|
|
|
return(NOERROR);
|
|
|
|
|
|
}
|
|
|
|
|
|
else {
|
|
|
|
|
|
return(::GetLastError());
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// TYPE : FUNCTION
|
|
|
|
|
|
// NAME : CDirectory::Next
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// DESC : CDirectory::Begin ȣ<><C8A3> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>˻<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
// PARM : N/A
|
|
|
|
|
|
// RETV : NOERROR - <20><><EFBFBD><EFBFBD> / <20><EFBFBD> - <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
// PRGM : B4nFter
|
|
|
|
|
|
// P.S.>
|
|
|
|
|
|
// - CDirectory::Begin <20><> <20>켱 ȣ<><C8A3><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD> <20><>
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
DWORD CDirectory::Next()
|
|
|
|
|
|
{
|
|
|
|
|
|
DN_ASSERT(IsOpen(), "Must Call CDirectory::Begin() First!");
|
|
|
|
|
|
|
|
|
|
|
|
if (::FindNextFile(m_hFind, &m_stFindData)) {
|
|
|
|
|
|
return(NOERROR);
|
|
|
|
|
|
}
|
|
|
|
|
|
else {
|
|
|
|
|
|
return(::GetLastError());
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// TYPE : FUNCTION
|
|
|
|
|
|
// NAME : CDirectory::End
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// DESC : <20><><EFBFBD><EFBFBD> <20>˻<EFBFBD><CBBB><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
// PARM : N/A
|
|
|
|
|
|
// RETV : N/A
|
|
|
|
|
|
// PRGM : B4nFter
|
|
|
|
|
|
// P.S.>
|
|
|
|
|
|
// - CDirectory::Begin / CDirectory::Next <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD> ȣ<><C8A3> <20>Ǿ<EFBFBD><C7BE><EFBFBD> <20><>
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
VOID CDirectory::End()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (INVALID_HANDLE_VALUE != m_hFind) {
|
|
|
|
|
|
::FindClose(m_hFind);
|
|
|
|
|
|
m_hFind = INVALID_HANDLE_VALUE;
|
|
|
|
|
|
}
|
|
|
|
|
|
Reset();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// TYPE : FUNCTION
|
|
|
|
|
|
// NAME : CDirectory::Copy
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// DESC : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
// PARM : 1 . lpszSourceDirectoryName - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮
|
|
|
|
|
|
// 2 . lpszTargetDirectoryName - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮
|
|
|
|
|
|
// 4 . bOverWrite - <20><><EFBFBD><EFBFBD><EEBEB2> <20><><EFBFBD><EFBFBD> (<28>⺻<EFBFBD><E2BABB> FALSE)
|
|
|
|
|
|
// 5 . bSubDirectory - <20>Ϻ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮 Ž<><C5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28>⺻<EFBFBD><E2BABB> FALSE)
|
|
|
|
|
|
// RETV : NOERROR - <20><><EFBFBD><EFBFBD> / <20><EFBFBD> - <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
// PRGM : B4nFter
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
DWORD CDirectory::Copy(LPCTSTR lpszSourceDirectoryName, LPCTSTR lpszTargetDirectoryName, BOOL bOverWrite, BOOL bSubDirectory)
|
|
|
|
|
|
{
|
|
|
|
|
|
DN_ASSERT(NULL != lpszSourceDirectoryName, "Invalid!");
|
|
|
|
|
|
DN_ASSERT(NULL != lpszTargetDirectoryName, "Invalid!");
|
|
|
|
|
|
|
|
|
|
|
|
// <20>Ű<EFBFBD><C5B0><EFBFBD><EFBFBD><EFBFBD> üũ
|
|
|
|
|
|
if (!lpszSourceDirectoryName || !_tcscmp(lpszSourceDirectoryName, _T(""))) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!lpszTargetDirectoryName || !_tcscmp(lpszTargetDirectoryName, _T(""))) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>丮 <20><>ȿ<EFBFBD><C8BF> üũ
|
|
|
|
|
|
INT iRetVal;
|
|
|
|
|
|
iRetVal = _taccess(lpszSourceDirectoryName, 0);
|
|
|
|
|
|
if (iRetVal) {
|
|
|
|
|
|
// <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
DN_RETURN(static_cast<DWORD>(iRetVal));
|
|
|
|
|
|
}
|
|
|
|
|
|
iRetVal = _taccess(lpszTargetDirectoryName, 0);
|
|
|
|
|
|
if (iRetVal) {
|
|
|
|
|
|
// <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
DN_RETURN(static_cast<DWORD>(iRetVal));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
TCHAR szSourceDirectoryNameOut[DF_DIR_MAX_PATH] = { _T('\0'), };
|
|
|
|
|
|
TCHAR szTargetDirectoryNameOut[DF_DIR_MAX_PATH] = { _T('\0'), };
|
|
|
|
|
|
DWORD dwRetVal = CheckFixDirectoryName(lpszSourceDirectoryName, lpszTargetDirectoryName, szSourceDirectoryNameOut, COUNT_OF(szSourceDirectoryNameOut), szTargetDirectoryNameOut, COUNT_OF(szTargetDirectoryNameOut));
|
|
|
|
|
|
if (NOERROR != dwRetVal) {
|
|
|
|
|
|
DN_RETURN(dwRetVal);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>۾<EFBFBD> <20><><EFBFBD><EFBFBD> (<28>۾<EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|
|
|
|
|
dwRetVal = CopyWork(
|
|
|
|
|
|
szSourceDirectoryNameOut,
|
|
|
|
|
|
szTargetDirectoryNameOut,
|
|
|
|
|
|
FALSE,
|
|
|
|
|
|
bOverWrite,
|
|
|
|
|
|
bSubDirectory
|
|
|
|
|
|
);
|
|
|
|
|
|
if (NOERROR != dwRetVal) {
|
|
|
|
|
|
DN_RETURN(dwRetVal);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return(NOERROR);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// TYPE : FUNCTION
|
|
|
|
|
|
// NAME : CDirectory::Move
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// DESC : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20>̵<EFBFBD>
|
|
|
|
|
|
// PARM : 1 . lpszSourceDirectoryName - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮
|
|
|
|
|
|
// 2 . lpszTargetDirectoryName - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮
|
|
|
|
|
|
// 4 . bOverWrite - <20><><EFBFBD><EFBFBD><EEBEB2> <20><><EFBFBD><EFBFBD> (<28>⺻<EFBFBD><E2BABB> FALSE)
|
|
|
|
|
|
// 5 . bSubDirectory - <20>Ϻ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮 Ž<><C5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28>⺻<EFBFBD><E2BABB> FALSE)
|
|
|
|
|
|
// RETV : NOERROR - <20><><EFBFBD><EFBFBD> / <20><EFBFBD> - <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
// PRGM : B4nFter
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
DWORD CDirectory::Move(LPCTSTR lpszSourceDirectoryName, LPCTSTR lpszTargetDirectoryName, BOOL bOverWrite, BOOL bSubDirectory)
|
|
|
|
|
|
{
|
|
|
|
|
|
DN_ASSERT(NULL != lpszSourceDirectoryName, "Invalid!");
|
|
|
|
|
|
DN_ASSERT(NULL != lpszTargetDirectoryName, "Invalid!");
|
|
|
|
|
|
|
|
|
|
|
|
// <20>Ű<EFBFBD><C5B0><EFBFBD><EFBFBD><EFBFBD> üũ
|
|
|
|
|
|
if (!lpszSourceDirectoryName || !_tcscmp(lpszSourceDirectoryName, _T(""))) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!lpszTargetDirectoryName || !_tcscmp(lpszTargetDirectoryName, _T(""))) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>丮 <20><>ȿ<EFBFBD><C8BF> üũ
|
|
|
|
|
|
INT iRetVal;
|
|
|
|
|
|
iRetVal = ::_taccess(lpszSourceDirectoryName, 0);
|
|
|
|
|
|
if (iRetVal) {
|
|
|
|
|
|
// <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
DN_RETURN(static_cast<DWORD>(iRetVal));
|
|
|
|
|
|
}
|
|
|
|
|
|
iRetVal = ::_taccess(lpszTargetDirectoryName, 0);
|
|
|
|
|
|
if (iRetVal) {
|
|
|
|
|
|
// <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
DN_RETURN(static_cast<DWORD>(iRetVal));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
TCHAR szSourceDirectoryNameOut[DF_DIR_MAX_PATH] = { _T('\0'), };
|
|
|
|
|
|
TCHAR szTargetDirectoryNameOut[DF_DIR_MAX_PATH] = { _T('\0'), };
|
|
|
|
|
|
DWORD dwRetVal = CheckFixDirectoryName(lpszSourceDirectoryName, lpszTargetDirectoryName, szSourceDirectoryNameOut, COUNT_OF(szSourceDirectoryNameOut), szTargetDirectoryNameOut, COUNT_OF(szTargetDirectoryNameOut));
|
|
|
|
|
|
if (NOERROR != dwRetVal) {
|
|
|
|
|
|
DN_RETURN(dwRetVal);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>۾<EFBFBD> <20><><EFBFBD><EFBFBD> (<28>۾<EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|
|
|
|
|
dwRetVal = CopyWork(
|
|
|
|
|
|
szSourceDirectoryNameOut,
|
|
|
|
|
|
szTargetDirectoryNameOut,
|
|
|
|
|
|
TRUE,
|
|
|
|
|
|
bOverWrite,
|
|
|
|
|
|
bSubDirectory
|
|
|
|
|
|
);
|
|
|
|
|
|
if (NOERROR != dwRetVal) {
|
|
|
|
|
|
DN_RETURN(dwRetVal);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ó<EFBFBD><C3B3> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>丮 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̹<EFBFBD> CDirectory::CopyWork() <20>ȿ<EFBFBD><C8BF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
if (FALSE == ::RemoveDirectory(lpszSourceDirectoryName) &&
|
|
|
|
|
|
bSubDirectory
|
|
|
|
|
|
)
|
|
|
|
|
|
{
|
|
|
|
|
|
DN_RETURN(::GetLastError());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return(NOERROR);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// TYPE : FUNCTION
|
|
|
|
|
|
// NAME : CDirectory::Rename
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// DESC : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
// PARM : 1 . lpszSourceDirectoryName - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮
|
|
|
|
|
|
// 2 . lpszTargetDirectoryName - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮
|
|
|
|
|
|
// RETV : NOERROR - <20><><EFBFBD><EFBFBD> / <20><EFBFBD> - <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
// PRGM : B4nFter
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
DWORD CDirectory::Rename(LPCTSTR lpszSourceDirectoryName, LPCTSTR lpszTargetDirectoryName)
|
|
|
|
|
|
{
|
|
|
|
|
|
DN_ASSERT(NULL != lpszSourceDirectoryName, "Invalid!");
|
|
|
|
|
|
DN_ASSERT(NULL != lpszTargetDirectoryName, "Invalid!");
|
|
|
|
|
|
// CHECK_STRING(lpszSourceDirectoryName, DF_DIR_MAX_PATH);
|
|
|
|
|
|
// CHECK_STRING(lpszTargetDirectoryName, DF_DIR_MAX_PATH);
|
|
|
|
|
|
|
|
|
|
|
|
// <20>Ű<EFBFBD><C5B0><EFBFBD><EFBFBD><EFBFBD> üũ
|
|
|
|
|
|
if (!lpszSourceDirectoryName || !_tcscmp(lpszSourceDirectoryName, _T(""))) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
// <20>Ű<EFBFBD><C5B0><EFBFBD><EFBFBD><EFBFBD> üũ
|
|
|
|
|
|
if (!lpszTargetDirectoryName || !_tcscmp(lpszTargetDirectoryName, _T(""))) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (FALSE == ::MoveFile(lpszSourceDirectoryName, lpszTargetDirectoryName)) {
|
|
|
|
|
|
return(::GetLastError());
|
|
|
|
|
|
}
|
|
|
|
|
|
return(NOERROR);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// TYPE : FUNCTION
|
|
|
|
|
|
// NAME : CDirectory::Remove
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// DESC : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
// PARM : 1 . lpszSourceDirectoryName - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮
|
|
|
|
|
|
// 2 . bCheckFileExist - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28>⺻<EFBFBD><E2BABB> TRUE)
|
|
|
|
|
|
// RETV : NOERROR - <20><><EFBFBD><EFBFBD> / <20><EFBFBD> - <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
// PRGM : B4nFter
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
DWORD CDirectory::Remove(LPCTSTR lpszSourceDirectoryName, BOOL bCheckFileExist)
|
|
|
|
|
|
{
|
|
|
|
|
|
DN_ASSERT(NULL != lpszSourceDirectoryName, "Invalid!");
|
|
|
|
|
|
// CHECK_STRING(lpszSourceDirectoryName, DF_DIR_MAX_PATH);
|
|
|
|
|
|
|
|
|
|
|
|
// <20>Ű<EFBFBD><C5B0><EFBFBD><EFBFBD><EFBFBD> üũ
|
|
|
|
|
|
if (!lpszSourceDirectoryName || !_tcscmp(lpszSourceDirectoryName, _T(""))) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
TCHAR szSourceDirectoryName[DF_DIR_MAX_PATH] = { _T('\0'), };
|
|
|
|
|
|
STRNCPY(szSourceDirectoryName, COUNT_OF(szSourceDirectoryName), lpszSourceDirectoryName);
|
|
|
|
|
|
INT iSourceDirectoryNameLen = (INT)_tcslen(szSourceDirectoryName);
|
|
|
|
|
|
DN_ASSERT(0 < iSourceDirectoryNameLen, "Invalid!");
|
|
|
|
|
|
DN_ASSERT(COUNT_OF(szSourceDirectoryName)-1 >= iSourceDirectoryNameLen, "Invalid!");
|
|
|
|
|
|
if (0 >= iSourceDirectoryNameLen) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (_T('\\') != szSourceDirectoryName[iSourceDirectoryNameLen-1]) {
|
|
|
|
|
|
if (iSourceDirectoryNameLen < COUNT_OF(szSourceDirectoryName)-2) { // NULL <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
szSourceDirectoryName[iSourceDirectoryNameLen] = _T('\\');
|
|
|
|
|
|
szSourceDirectoryName[iSourceDirectoryNameLen+1] = _T('\0');
|
|
|
|
|
|
++iSourceDirectoryNameLen;
|
|
|
|
|
|
}
|
|
|
|
|
|
else {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DWORD dwRetVal = RemoveWork(szSourceDirectoryName, bCheckFileExist);
|
|
|
|
|
|
if (NOERROR != dwRetVal) {
|
|
|
|
|
|
DN_RETURN(dwRetVal);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ó<EFBFBD><C3B3> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>丮 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̹<EFBFBD> CDirectory::CopyWork() <20>ȿ<EFBFBD><C8BF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
if (FALSE == ::RemoveDirectory(lpszSourceDirectoryName)) {
|
|
|
|
|
|
DN_RETURN(::GetLastError());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return(NOERROR);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// TYPE : FUNCTION
|
|
|
|
|
|
// NAME : CDirectory::CheckFixDirectoryName
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// DESC : Copy / Move <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ֵ<EFBFBD><D6B5><EFBFBD> <20><><EFBFBD><EFBFBD> / <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20≯<EFBFBD><CCB8><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
// PARM : 1 . lpszSourceDirectoryNameIn - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮 (<28>Է<EFBFBD>)
|
|
|
|
|
|
// 2 . lpszTargetDirectoryNameIn - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮 (<28>Է<EFBFBD>)
|
|
|
|
|
|
// 3 . lpszSourceDirectoryNameOut - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮 (<28><><EFBFBD><EFBFBD>)
|
|
|
|
|
|
// 4 . iSourceDirectoryNameOutSize - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮 ũ<><C5A9> (<28><><EFBFBD><EFBFBD>)
|
|
|
|
|
|
// 5 . lpszTargetDirectoryNameOut - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮 (<28><><EFBFBD><EFBFBD>)
|
|
|
|
|
|
// 6 . iTargetDirectoryNameOutSize - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮 ũ<><C5A9> (<28><><EFBFBD><EFBFBD>)
|
|
|
|
|
|
// RETV : NOERROR - <20><><EFBFBD><EFBFBD> / <20><EFBFBD> - <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
// PRGM : B4nFter
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
DWORD CDirectory::CheckFixDirectoryName(
|
|
|
|
|
|
LPCTSTR lpszSourceDirectoryNameIn,
|
|
|
|
|
|
LPCTSTR lpszTargetDirectoryNameIn,
|
|
|
|
|
|
LPTSTR lpszSourceDirectoryNameOut,
|
|
|
|
|
|
const INT iSourceDirectoryNameOutSize,
|
|
|
|
|
|
LPTSTR lpszTargetDirectoryNameOut,
|
|
|
|
|
|
const INT iTargetDirectoryNameOutSize
|
|
|
|
|
|
)
|
|
|
|
|
|
{
|
|
|
|
|
|
DN_ASSERT(NULL != lpszSourceDirectoryNameIn, "Invalid!");
|
|
|
|
|
|
DN_ASSERT(NULL != lpszTargetDirectoryNameIn, "Invalid!");
|
|
|
|
|
|
DN_ASSERT(NULL != lpszSourceDirectoryNameOut, "Invalid!");
|
|
|
|
|
|
DN_ASSERT(0 < iSourceDirectoryNameOutSize, "Invalid!");
|
|
|
|
|
|
DN_ASSERT(NULL != lpszTargetDirectoryNameOut, "Invalid!");
|
|
|
|
|
|
DN_ASSERT(0 < iTargetDirectoryNameOutSize, "Invalid!");
|
|
|
|
|
|
// CHECK_STRING(lpszSourceDirectoryNameIn, DF_DIR_MAX_PATH);
|
|
|
|
|
|
// CHECK_STRING(lpszTargetDirectoryNameIn, DF_DIR_MAX_PATH);
|
|
|
|
|
|
|
|
|
|
|
|
// <20>Ű<EFBFBD><C5B0><EFBFBD><EFBFBD><EFBFBD> üũ
|
|
|
|
|
|
if (!lpszSourceDirectoryNameIn || !_tcscmp(lpszSourceDirectoryNameIn, _T(""))) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!lpszTargetDirectoryNameIn || !_tcscmp(lpszTargetDirectoryNameIn, _T(""))) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!lpszSourceDirectoryNameOut || !lpszTargetDirectoryNameOut) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
INT iSourceDirectoryNameLen = (INT)_tcslen(lpszSourceDirectoryNameIn);
|
|
|
|
|
|
DN_ASSERT(0 < iSourceDirectoryNameLen, "Invalid!");
|
|
|
|
|
|
DN_ASSERT(iSourceDirectoryNameOutSize-1 >= iSourceDirectoryNameLen, "Invalid!");
|
|
|
|
|
|
if (0 >= iSourceDirectoryNameLen) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
STRNCPY(lpszSourceDirectoryNameOut, iSourceDirectoryNameOutSize, lpszSourceDirectoryNameIn);
|
|
|
|
|
|
INT iTargetDirectoryNameLen = (INT)_tcslen(lpszTargetDirectoryNameIn);
|
|
|
|
|
|
DN_ASSERT(0 < iTargetDirectoryNameLen, "Invalid!");
|
|
|
|
|
|
DN_ASSERT(iTargetDirectoryNameOutSize-1 >= iTargetDirectoryNameLen, "Invalid!");
|
|
|
|
|
|
if (0 >= iTargetDirectoryNameLen) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
STRNCPY(lpszTargetDirectoryNameOut, iTargetDirectoryNameOutSize, lpszTargetDirectoryNameIn);
|
|
|
|
|
|
|
|
|
|
|
|
if (_T('\\') != lpszSourceDirectoryNameOut[iSourceDirectoryNameLen-1]) {
|
|
|
|
|
|
if (iSourceDirectoryNameLen < iSourceDirectoryNameOutSize-2) { // NULL <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
lpszSourceDirectoryNameOut[iSourceDirectoryNameLen] = _T('\\');
|
|
|
|
|
|
lpszSourceDirectoryNameOut[iSourceDirectoryNameLen+1] = _T('\0');
|
|
|
|
|
|
++iSourceDirectoryNameLen;
|
|
|
|
|
|
}
|
|
|
|
|
|
else {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (_T('\\') != lpszTargetDirectoryNameOut[iTargetDirectoryNameLen-1]) {
|
|
|
|
|
|
if (iTargetDirectoryNameLen < iTargetDirectoryNameOutSize-2) { // NULL <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
lpszTargetDirectoryNameOut[iTargetDirectoryNameLen] = _T('\\');
|
|
|
|
|
|
lpszTargetDirectoryNameOut[iTargetDirectoryNameLen+1] = _T('\0');
|
|
|
|
|
|
++iTargetDirectoryNameLen;
|
|
|
|
|
|
}
|
|
|
|
|
|
else {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
CStringSet aSourceDirectoryName; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20≯<EFBFBD><CCB8><EFBFBD> <20>Ľ<EFBFBD><C4BD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ڿ<EFBFBD>
|
|
|
|
|
|
if (2 <= iSourceDirectoryNameLen) {
|
|
|
|
|
|
if (_T(':') == lpszSourceDirectoryNameOut[1]) {
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD> <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20><>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD> ǥ<>ð<EFBFBD> <20>ִٸ<D6B4> <20><>ŵ
|
|
|
|
|
|
aSourceDirectoryName = &lpszSourceDirectoryNameOut[2];
|
|
|
|
|
|
}
|
|
|
|
|
|
else {
|
|
|
|
|
|
aSourceDirectoryName = lpszSourceDirectoryNameOut;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else {
|
|
|
|
|
|
aSourceDirectoryName = lpszSourceDirectoryNameOut;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
CStringSet aSourceDirectoryToken1, aSourceDirectoryToken2; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20≯<EFBFBD><CCB8><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ڿ<EFBFBD>
|
|
|
|
|
|
BOOL bDoLoop = TRUE;
|
|
|
|
|
|
INT nStrLength = aSourceDirectoryName.GetLength();
|
|
|
|
|
|
INT nStrIndex = 0;
|
|
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮 <20≯<EFBFBD><CCB8><EFBFBD><EFBFBD><EFBFBD> <20><>ū <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
aSourceDirectoryToken1 = aSourceDirectoryName.Tokenize(m_szSourceDirectorySeperator, nStrIndex);
|
|
|
|
|
|
if (!aSourceDirectoryToken1.IsEmpty()) {
|
|
|
|
|
|
aSourceDirectoryToken2 = aSourceDirectoryToken1;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (nStrLength <= nStrIndex) {
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ľ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
while(bDoLoop);
|
|
|
|
|
|
|
|
|
|
|
|
// <20≯<EFBFBD><CCB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵٸ<D1B4> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮 <20≯<EFBFBD> <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20>߰<EFBFBD>
|
|
|
|
|
|
if (!aSourceDirectoryToken2.IsEmpty()) {
|
|
|
|
|
|
INT iTargetDirectoryNameLen1 = (INT)_tcslen(lpszTargetDirectoryNameOut);
|
|
|
|
|
|
STRNCAT(lpszTargetDirectoryNameOut, iTargetDirectoryNameOutSize, aSourceDirectoryToken2.Get());
|
|
|
|
|
|
STRNCAT(lpszTargetDirectoryNameOut, iTargetDirectoryNameOutSize, _T("\\"));
|
|
|
|
|
|
INT iTargetDirectoryNameLen2 = (INT)_tcslen(lpszTargetDirectoryNameOut);
|
|
|
|
|
|
DN_ASSERT(iTargetDirectoryNameLen2 == iTargetDirectoryNameLen1 + aSourceDirectoryToken2.GetLength() + 1, "String Length Not Mach!");
|
|
|
|
|
|
if (iTargetDirectoryNameLen2 != iTargetDirectoryNameLen1 + aSourceDirectoryToken2.GetLength() + 1) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return(NOERROR);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// TYPE : FUNCTION
|
|
|
|
|
|
// NAME : CDirectory::CopyWork
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// DESC : Copy / Move <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20>ڽ<EFBFBD><DABD><EFBFBD> <20><><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3>
|
|
|
|
|
|
// PARM : 1 . lpszSourceDirectoryName - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮
|
|
|
|
|
|
// 2 . lpszTargetDirectoryName - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮
|
|
|
|
|
|
// 3 . bDoErase - <20>۾<EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>丮 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (TRUE - Move / FALSE - Copy)
|
|
|
|
|
|
// 5 . bOverWrite - <20><><EFBFBD><EFBFBD><EEBEB2> <20><><EFBFBD><EFBFBD> (<28>⺻<EFBFBD><E2BABB> FALSE)
|
|
|
|
|
|
// 6 . bSubDirectory - <20>Ϻ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮 Ž<><C5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28>⺻<EFBFBD><E2BABB> FALSE)
|
|
|
|
|
|
// RETV : NOERROR - <20><><EFBFBD><EFBFBD> / <20><EFBFBD> - <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
// PRGM : B4nFter
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
DWORD CDirectory::CopyWork(
|
|
|
|
|
|
LPCTSTR lpszSourceDirectoryName,
|
|
|
|
|
|
LPCTSTR lpszTargetDirectoryName,
|
|
|
|
|
|
BOOL bDoErase,
|
|
|
|
|
|
BOOL bOverWrite,
|
|
|
|
|
|
BOOL bSubDirectory
|
|
|
|
|
|
)
|
|
|
|
|
|
{
|
|
|
|
|
|
DN_ASSERT(NULL != lpszSourceDirectoryName, "Invalid!");
|
|
|
|
|
|
DN_ASSERT(NULL != lpszTargetDirectoryName, "Invalid!");
|
|
|
|
|
|
// CHECK_STRING(lpszSourceDirectoryName, DF_DIR_MAX_PATH);
|
|
|
|
|
|
// CHECK_STRING(lpszTargetDirectoryName, DF_DIR_MAX_PATH);
|
|
|
|
|
|
|
|
|
|
|
|
// ȣ<><C8A3> <20><> <20>Űܺ<C5B0><DCBA><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮 <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ<C3BC><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
|
|
|
|
|
|
|
|
|
|
|
DWORD dwRetVal;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮 <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
if (FALSE == ::CreateDirectory(lpszTargetDirectoryName, NULL)) {
|
|
|
|
|
|
dwRetVal = ::GetLastError();
|
|
|
|
|
|
if (ERROR_ALREADY_EXISTS != dwRetVal) {
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
DN_RETURN(dwRetVal);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD>/<2F>̵<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>丮 <20><> Ž<><C5BD>
|
|
|
|
|
|
TCHAR szSourceDirectoryFindFiles[DF_DIR_MAX_PATH] = { _T('\0'), };
|
|
|
|
|
|
STRCPY(szSourceDirectoryFindFiles, COUNT_OF(szSourceDirectoryFindFiles), lpszSourceDirectoryName);
|
|
|
|
|
|
STRNCAT(szSourceDirectoryFindFiles, COUNT_OF(szSourceDirectoryFindFiles), _T("*.*"));
|
|
|
|
|
|
CDirectory aDirectory;
|
|
|
|
|
|
dwRetVal = aDirectory.Begin(szSourceDirectoryFindFiles);
|
|
|
|
|
|
if (NOERROR != dwRetVal) {
|
|
|
|
|
|
DN_RETURN(dwRetVal);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
while(NOERROR == dwRetVal) {
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>۾<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
if (aDirectory.IsDirectory()) {
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>丮
|
|
|
|
|
|
|
|
|
|
|
|
if (bSubDirectory &&
|
|
|
|
|
|
_T('.') != aDirectory.GetFindData().cFileName[0]
|
|
|
|
|
|
)
|
|
|
|
|
|
{
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
|
|
|
|
|
TCHAR szSourceDirectoryName[DF_DIR_MAX_PATH] = { _T('\0'), };
|
|
|
|
|
|
TCHAR szTargetDirectoryName[DF_DIR_MAX_PATH] = { _T('\0'), };
|
|
|
|
|
|
INT iDirectoryNameLen1, iDirectoryNameLen2;
|
|
|
|
|
|
STRNCPY(szSourceDirectoryName, COUNT_OF(szSourceDirectoryName), lpszSourceDirectoryName);
|
|
|
|
|
|
STRNCPY(szTargetDirectoryName, COUNT_OF(szTargetDirectoryName), lpszTargetDirectoryName);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮 <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
iDirectoryNameLen1 = (INT)_tcslen(szSourceDirectoryName);
|
|
|
|
|
|
STRCAT(szSourceDirectoryName, COUNT_OF(szSourceDirectoryName), aDirectory.GetFindData().cFileName);
|
|
|
|
|
|
STRCAT(szSourceDirectoryName, COUNT_OF(szSourceDirectoryName), _T("\\"));
|
|
|
|
|
|
iDirectoryNameLen2 = (INT)_tcslen(szSourceDirectoryName);
|
|
|
|
|
|
DN_ASSERT(iDirectoryNameLen2 == iDirectoryNameLen1 + (INT)_tcslen(aDirectory.GetFindData().cFileName) + 1, "String Length Not Mach!");
|
|
|
|
|
|
if (iDirectoryNameLen2 != iDirectoryNameLen1 + (INT)_tcslen(aDirectory.GetFindData().cFileName) + 1) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮 <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
iDirectoryNameLen1 = (INT)_tcslen(szTargetDirectoryName);
|
|
|
|
|
|
STRCAT(szTargetDirectoryName, COUNT_OF(szTargetDirectoryName), aDirectory.GetFindData().cFileName);
|
|
|
|
|
|
STRCAT(szTargetDirectoryName, COUNT_OF(szTargetDirectoryName), _T("\\"));
|
|
|
|
|
|
iDirectoryNameLen2 = (INT)_tcslen(szTargetDirectoryName);
|
|
|
|
|
|
DN_ASSERT(iDirectoryNameLen2 == iDirectoryNameLen1 + (INT)_tcslen(aDirectory.GetFindData().cFileName) + 1, "String Length Not Mach!");
|
|
|
|
|
|
if (iDirectoryNameLen2 != iDirectoryNameLen1 + (INT)_tcslen(aDirectory.GetFindData().cFileName) + 1) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD>/<2F>̵<EFBFBD> <20>۾<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
dwRetVal = CopyWork(
|
|
|
|
|
|
szSourceDirectoryName,
|
|
|
|
|
|
szTargetDirectoryName,
|
|
|
|
|
|
bDoErase,
|
|
|
|
|
|
bOverWrite,
|
|
|
|
|
|
bSubDirectory
|
|
|
|
|
|
);
|
|
|
|
|
|
if (NOERROR != dwRetVal) {
|
|
|
|
|
|
DN_RETURN(dwRetVal);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ó<EFBFBD><C3B3> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>丮 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̹<EFBFBD> CDirectory::CopyWork() <20>ȿ<EFBFBD><C8BF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
if (bDoErase &&
|
|
|
|
|
|
FALSE == ::RemoveDirectory(szSourceDirectoryName)
|
|
|
|
|
|
)
|
|
|
|
|
|
{
|
|
|
|
|
|
DN_RETURN(::GetLastError());
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else {
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
|
|
|
|
|
TCHAR szSourceFileName[DF_DIR_MAX_PATH] = { _T('\0'), };
|
|
|
|
|
|
TCHAR szTargetFileName[DF_DIR_MAX_PATH] = { _T('\0'), };
|
|
|
|
|
|
INT iFileNameLen1, iFileNameLen2;
|
|
|
|
|
|
STRNCPY(szSourceFileName, COUNT_OF(szSourceFileName), lpszSourceDirectoryName);
|
|
|
|
|
|
STRNCPY(szTargetFileName, COUNT_OF(szTargetFileName), lpszTargetDirectoryName);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
iFileNameLen1 = (INT)_tcslen(szSourceFileName);
|
|
|
|
|
|
STRCAT(szSourceFileName, COUNT_OF(szSourceFileName), aDirectory.GetFindData().cFileName);
|
|
|
|
|
|
iFileNameLen2 = (INT)_tcslen(szSourceFileName);
|
|
|
|
|
|
DN_ASSERT(iFileNameLen2 == iFileNameLen1 + (INT)_tcslen(aDirectory.GetFindData().cFileName), "String Length Not Mach!");
|
|
|
|
|
|
if (iFileNameLen2 != iFileNameLen1 + (INT)_tcslen(aDirectory.GetFindData().cFileName)) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
// <20><>ǥ <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
iFileNameLen1 = (INT)_tcslen(szTargetFileName);
|
|
|
|
|
|
STRCAT(szTargetFileName, COUNT_OF(szTargetFileName), aDirectory.GetFindData().cFileName);
|
|
|
|
|
|
iFileNameLen2 = (INT)_tcslen(szTargetFileName);
|
|
|
|
|
|
DN_ASSERT(iFileNameLen2 == iFileNameLen1 + (INT)_tcslen(aDirectory.GetFindData().cFileName), "String Length Not Mach!");
|
|
|
|
|
|
if (iFileNameLen2 != iFileNameLen1 + (INT)_tcslen(aDirectory.GetFindData().cFileName)) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
DWORD dwCopyFlag = (bOverWrite)?(0):(COPY_FILE_FAIL_IF_EXISTS);
|
|
|
|
|
|
if (FALSE == ::CopyFileEx(szSourceFileName, szTargetFileName, NULL, NULL, FALSE, dwCopyFlag)) {
|
|
|
|
|
|
dwRetVal = ::GetLastError();
|
|
|
|
|
|
if (ERROR_FILE_EXISTS != dwRetVal &&
|
|
|
|
|
|
ERROR_ALREADY_EXISTS != dwRetVal
|
|
|
|
|
|
)
|
|
|
|
|
|
{
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
DN_RETURN(dwRetVal);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ó<EFBFBD><C3B3>
|
|
|
|
|
|
if (bDoErase &&
|
|
|
|
|
|
FALSE == ::DeleteFile(szSourceFileName)
|
|
|
|
|
|
)
|
|
|
|
|
|
{
|
|
|
|
|
|
DN_RETURN(::GetLastError());
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
dwRetVal = aDirectory.Next();
|
|
|
|
|
|
if (NOERROR != dwRetVal && ERROR_NO_MORE_FILES != dwRetVal) {
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20><EFBFBD>
|
|
|
|
|
|
aDirectory.End();
|
|
|
|
|
|
DN_RETURN(dwRetVal);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
aDirectory.End();
|
|
|
|
|
|
|
|
|
|
|
|
return(NOERROR);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// TYPE : FUNCTION
|
|
|
|
|
|
// NAME : CDirectory::RemoveWork
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
// DESC : Remove <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20>ڽ<EFBFBD><DABD><EFBFBD> <20><><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3>
|
|
|
|
|
|
// PARM : 1 . lpszSourceDirectoryName - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮
|
|
|
|
|
|
// 2 . bCheckFileExist - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28>⺻<EFBFBD><E2BABB> TRUE)
|
|
|
|
|
|
// RETV : NOERROR - <20><><EFBFBD><EFBFBD> / <20><EFBFBD> - <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
// PRGM : B4nFter
|
|
|
|
|
|
//*---------------------------------------------------------------
|
|
|
|
|
|
DWORD CDirectory::RemoveWork(LPCTSTR lpszSourceDirectoryName, BOOL bCheckFileExist)
|
|
|
|
|
|
{
|
|
|
|
|
|
DN_ASSERT(NULL != lpszSourceDirectoryName, "Invalid!");
|
|
|
|
|
|
// CHECK_STRING(lpszSourceDirectoryName, DF_DIR_MAX_PATH);
|
|
|
|
|
|
|
|
|
|
|
|
// ȣ<><C8A3> <20><> <20>Űܺ<C5B0><DCBA><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮 <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ<C3BC><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
|
|
|
|
|
|
|
|
|
|
|
DWORD dwRetVal;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD>/<2F>̵<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>丮 <20><> Ž<><C5BD>
|
|
|
|
|
|
TCHAR szSourceDirectoryFindFiles[DF_DIR_MAX_PATH] = { _T('\0'), };
|
|
|
|
|
|
STRCPY(szSourceDirectoryFindFiles, COUNT_OF(szSourceDirectoryFindFiles), lpszSourceDirectoryName);
|
|
|
|
|
|
STRNCAT(szSourceDirectoryFindFiles, COUNT_OF(szSourceDirectoryFindFiles), _T("*.*"));
|
|
|
|
|
|
CDirectory aDirectory;
|
|
|
|
|
|
dwRetVal = aDirectory.Begin(szSourceDirectoryFindFiles);
|
|
|
|
|
|
if (NOERROR != dwRetVal) {
|
|
|
|
|
|
DN_RETURN(dwRetVal);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
while(NOERROR == dwRetVal) {
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>۾<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
if (aDirectory.IsDirectory()) {
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>丮
|
|
|
|
|
|
|
|
|
|
|
|
if (_T('.') != aDirectory.GetFindData().cFileName[0]) {
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
|
|
|
|
|
TCHAR szSourceDirectoryName[DF_DIR_MAX_PATH] = { _T('\0'), };
|
|
|
|
|
|
INT iDirectoryNameLen1, iDirectoryNameLen2;
|
|
|
|
|
|
STRNCPY(szSourceDirectoryName, COUNT_OF(szSourceDirectoryName), lpszSourceDirectoryName);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮 <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
iDirectoryNameLen1 = (INT)_tcslen(szSourceDirectoryName);
|
|
|
|
|
|
STRCAT(szSourceDirectoryName, COUNT_OF(szSourceDirectoryName), aDirectory.GetFindData().cFileName);
|
|
|
|
|
|
STRCAT(szSourceDirectoryName, COUNT_OF(szSourceDirectoryName), _T("\\"));
|
|
|
|
|
|
iDirectoryNameLen2 = (INT)_tcslen(szSourceDirectoryName);
|
|
|
|
|
|
DN_ASSERT(iDirectoryNameLen2 == iDirectoryNameLen1 + (INT)_tcslen(aDirectory.GetFindData().cFileName) + 1, "String Length Not Mach!");
|
|
|
|
|
|
if (iDirectoryNameLen2 != iDirectoryNameLen1 + (INT)_tcslen(aDirectory.GetFindData().cFileName) + 1) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD>/<2F>̵<EFBFBD> <20>۾<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
dwRetVal = RemoveWork(szSourceDirectoryName, bCheckFileExist);
|
|
|
|
|
|
if (NOERROR != dwRetVal) {
|
|
|
|
|
|
DN_RETURN(dwRetVal);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ó<EFBFBD><C3B3> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>丮 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̹<EFBFBD> CDirectory::CopyWork() <20>ȿ<EFBFBD><C8BF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
if (FALSE == ::RemoveDirectory(szSourceDirectoryName)) {
|
|
|
|
|
|
DN_RETURN(::GetLastError());
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else {
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
if (bCheckFileExist) {
|
|
|
|
|
|
// <20><> <20>ɼ<EFBFBD><C9BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>丮<EFBFBD><E4B8AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
|
|
|
|
|
TCHAR szSourceFileName[DF_DIR_MAX_PATH] = { _T('\0'), };
|
|
|
|
|
|
INT iFileNameLen1, iFileNameLen2;
|
|
|
|
|
|
STRNCPY(szSourceFileName, COUNT_OF(szSourceFileName), lpszSourceDirectoryName);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
iFileNameLen1 = (INT)_tcslen(szSourceFileName);
|
|
|
|
|
|
STRCAT(szSourceFileName, COUNT_OF(szSourceFileName), aDirectory.GetFindData().cFileName);
|
|
|
|
|
|
iFileNameLen2 = (INT)_tcslen(szSourceFileName);
|
|
|
|
|
|
DN_ASSERT(iFileNameLen2 == iFileNameLen1 + (INT)_tcslen(aDirectory.GetFindData().cFileName), "String Length Not Mach!");
|
|
|
|
|
|
if (iFileNameLen2 != iFileNameLen1 + (INT)_tcslen(aDirectory.GetFindData().cFileName)) {
|
|
|
|
|
|
DN_RETURN(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ó<EFBFBD><C3B3>
|
|
|
|
|
|
if (FALSE == ::DeleteFile(szSourceFileName)) {
|
|
|
|
|
|
DN_RETURN(::GetLastError());
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
dwRetVal = aDirectory.Next();
|
|
|
|
|
|
if (NOERROR != dwRetVal && ERROR_NO_MORE_FILES != dwRetVal) {
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20><EFBFBD>
|
|
|
|
|
|
aDirectory.End();
|
|
|
|
|
|
DN_RETURN(dwRetVal);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
aDirectory.End();
|
|
|
|
|
|
|
|
|
|
|
|
return(NOERROR);
|
|
|
|
|
|
}
|
|
|
|
|
|
|