删除 复制文件夹

简介:

删除:
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);
}
else
{
::AfxMessageBox (”删除目录操作失败!”,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);
}
else
{
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);


本文转自feisky博客园博客,原文链接:http://www.cnblogs.com/feisky/archive/2008/05/26/1586520.html,如需转载请自行联系原作者


相关文章
|
8月前
rmdir 删除一个空的目录
rmdir 删除一个空的目录。
46 3
|
8月前
快速批量重命名文件(夹)
该文介绍了如何使用一个工具进行文件批量处理,包括重命名和删除特定文字。首先,从百度网盘或蓝奏云获取工具,然后打开工具进入文件批量复制功能。选择“重命名”,将需要改名的文件拖入,按照示例改为指定格式。接着,利用“文字批量替换规则”去除文件名中的特定文字,如“文本”。设定规则后保存并执行,通过“以此参照执行”应用规则。最后,将文件拖入并执行,即可完成批量重命名或清理文件名中的无效文字。
C#编程-32:复制移动删除文件或文件夹
C#编程-32:复制移动删除文件或文件夹
104 0
C#编程-27:复制文件和目录
C#编程-27:复制文件和目录
C#编程-22:判断文件是否存在并创建文件(夹)
C#编程-22:判断文件是否存在并创建文件(夹)
133 0
C#编程-30:创建文件或文件夹
C#编程-30:创建文件或文件夹
273 0
|
分布式计算 Hadoop 开发者
修改文件夹名称| 学习笔记
快速学习修改文件夹名称
224 0