zoukankan      html  css  js  c++  java
  • 删除 复制文件夹

    删除:
    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);

  • 相关阅读:
    给div添加disabled属性
    11个让你吃惊的 Linux 终端命令
    在 Linux 平台中调试 C/C++ 内存泄漏方法(转)
    在压缩话单中过滤指定IP的一个小脚本
    过滤IP地址的正则表达式
    【转】网络编程知识
    linux下软链接与硬链接及其区别
    函数式编程入门教程(转)
    suricate学习笔记1--初步认识(转)
    lsof命令详解(转)
  • 原文地址:https://www.cnblogs.com/feisky/p/1586480.html
Copyright © 2011-2022 走看看