对文件的操作

WIN32:

SHFileOperation 

 
1.  将 C:/Test.txt 拷贝到

   D:/SHFILEOPSTRUCT lpsh;
   ZeroMemory(&lpsh,sizeof(lpsh));
   lpsh.hwnd= HWND_DESKTOP;
   lpsh.fFlags=FOF_NOCONFIRMATION|FOF_SIMPLEPROGRESS ;
   lpsh.wFunc=FO_COPY; // FO_MOVE 则是移动
   lpsh.pFrom= "C:/Test.txt";  
   lpsh.pTo  = "D:/"
   if( 0 != SHFileOperation(&lpsh))
   {
      AfxMessageBox("复制文件出错,请检查");
      return ;
   }

2.  删除 D:/Test.txt
   SHFILEOPSTRUCT lpsh;
   ZeroMemory(&lpsh,sizeof(lpsh));
   lpsh.hwnd= HWND_DESKTOP;
   lpsh.fFlags=FOF_NOCONFIRMATION|FOF_SIMPLEPROGRESS ;
   lpsh.wFunc=FO_DELETE;
   lpsh.pFrom= "D:/Test.txt";  
   if( 0 != SHFileOperation(&lpsh))
   {
      AfxMessageBox("删除文件出错,请检查");
      return ;
   }

CreateDirectory

CreateFile

FindFirstFile

FindNextFile

 MFC:

CFileFind

CFile

CArchive

  WIN32_FIND_DATA   FileData;     
  HANDLE   hSearch;     
  DWORD   dwAttrs;     
  char   szDirPath[]   =   "c://TEXTRO//";     
  char   szNewPath[MAX_PATH];     
  char   szHome[MAX_PATH];     
      
  BOOL   fFinished   =   FALSE;     
      
  //   Create   a   new   directory.     
      
  if   (!CreateDirectory(szDirPath,   NULL))     
  {     
          ErrorHandler("Couldn't   create   new   directory.");     
  }     
      
  //   Start   searching   for   .TXT   files   in   the   current   directory.     
      
  hSearch   =   FindFirstFile("*.*",   &FileData);     
  if   (hSearch   ==   INVALID_HANDLE_VALUE)     
  {     
          ErrorHandler("No   .TXT   files   found.");     
  }     
      
  //   Copy   each   .TXT   file   to   the   new   directory     
  //   and   change   it   to   read   only,   if   not   already.     
      
  while   (!fFinished)     
  {     
          lstrcpy(szNewPath,   szDirPath);     
          lstrcat(szNewPath,   FileData.cFileName);     
                  dwAttrs   =   GetFileAttributes(FileData.cFileName);     
                  if   (!(dwAttrs   &   FILE_ATTRIBUTE_DIRECTORY))     
                  {     
                                  FindClose(hSearch);   
                                  //   这里说明已经找到不是目录的文件   
                                  return   TRUE;   
                  }     
          }     
      
          if   (!FindNextFile(hSearch,   &FileData))     
          {   
                  if   (GetLastError()   ==   ERROR_NO_MORE_FILES)     
                  {     
                          MessageBox(hwnd,   "No   more   files.",     
                                  "Search   completed.",   MB_OK);     
                          fFinished   =   TRUE;     
                  }     
                  else     
                  {     
                          ErrorHandler("Couldn't   find   next   file.");     
                  }     
          }   
  }     
      
  //   Close   the   search   handle.     
      
  if   (!FindClose(hSearch))     
  {     
          ErrorHandler("Couldn't   close   search   handle.");     
  }   
    
  //   遍历了所有的子目录,没有找到单个的文件   
  return   FALSE;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值