删除:
void COperationDlg::OnDel2(CString m_strFileDictory)
//參數就是目錄的路徑
{
if(m_strFileDictory.GetLength()==0)
::AfxMessageBox
(”目錄名非法!”,MB_OK|MB_ICONEXCLAMATION);
return;
}
char FromFileName[80]=”";
strcpy(FromFileName,m_strFileDictory);
strcat(FromFileName,”");
SHFILEOPSTRUCT lpFileOp;
lpFileOp.hwnd =GetSafeHwnd();
lpFileOp.wFunc =FO_DELETE;
lpFileOp.pFrom =FromFileName;
lpFileOp.pTo=NULL;
lpFileOp.fFlags =FOF_SILENT|FOF_NOCONFIRMATION;
lpFileOp.fAnyOperationsAborted =FALSE;
lpFileOp.hNameMappings =NULL;
lpFileOp.lpszProgressTitle =NULL;
int rval=SHFileOperation(&lpFileOp);
if(rval==0)
if(lpFileOp.fAnyOperationsAborted ==TRUE)
::AfxMessageBox (”删除目錄操作取消”,MB_OK);
else
::AfxMessageBox(”删除目錄操作成功!”,MB_OK|MB_ICONEXCLAMATION);
(”删除目錄操作失敗!”,MB_OK|MB_ICONEXCLAMATION);
拷貝
BOOL CCutfoldDlg::CopyDirectory(CString SourcePath,CString
CopytoPath)
CFileFind tempFind;
char tempFileFind[200];
char tempFileFind1[200];
SECURITY_ATTRIBUTES lpSecurityDescriptor;
CreateDirectory(CopytoPath,&lpSecurityDescriptor);
sprintf(tempFileFind1,”%s\\*.*”,CopytoPath);
sprintf(tempFileFind,”%s\\*.*”,SourcePath);
BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind);
// BOOL IsFinded1=(BOOL)tempFind.FindFile(tempFileFind1);
while(IsFinded)
IsFinded=(BOOL)tempFind.FindNextFile();
if(!tempFind.IsDots())
char foundFileName[200];
// char foundFileName1[200];
strcpy(foundFileName,tempFind.GetFileName().GetBuffer(200));
//
strcpy(foundFileName1,tempFind.GetFileName().GetBuffer(200));
if(tempFind.IsDirectory())
char tempDir[200];
char tempDir1[200];
sprintf(tempDir,”%s\\%s”,SourcePath,foundFileName);
sprintf(tempDir1,”%s\\%s”,CopytoPath,foundFileName);
CopyDirectory(tempDir,tempDir1);
char tempFileName[200];
char tempFileName1[200];
sprintf(tempFileName,”%s\\%s”,SourcePath,foundFileName);
sprintf(tempFileName1,”%s\\%s”,CopytoPath,foundFileName);
//DeleteFile(tempFileName);
CopyFile(tempFileName,tempFileName1,0);
tempFind.Close();
return TRUE;
要實作移動,周遊檔案+MoveFile+CreateDirectory
周遊方法參考:
HANDLE hFind;
WIN32_FIND_DATA dataFind;
BOOL bMoreFiles=TRUE;
hFind=FindFirstFile(sPath+”\\*.txt”,&dataFind);////sPath表示路徑
while(hFind!=INVALID_HANDLE_VALUE
&& bMoreFiles==TRUE)
if(dataFind.dwFileAttributes==FILE_ATTRIBUTE_ARCHIVE)
MessageBox(dataFind.cFileName);
bMoreFiles=FindNextFile(hFind,&dataFind);
FindClose(hFind);