CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

求一个可以删除目录的函数!

楼主sensing(想到韩国去工作+留学!)2003-11-04 20:46:48 在 C++ Builder / 基础类 提问

我用一个函数删除目录,在窗口下可以正常删除,但在控制台就不行了,不知道怎么回事! 问题点数:20、回复次数:3Top

1 楼Behard(我爱天安门)回复于 2003-11-04 21:11:19 得分 8

#include   <vcl.h>  
  #pragma   hdrstop  
   
  #include   <shellapi.h>  
  #include   <conio.h>  
  #include   <stdio.h>  
   
  #pragma   argsused  
  int   main(int   argc,   char*   argv[])  
  {  
          SHFILEOPSTRUCT   FileOp;  
          char   fPath[256],   tPath[256];  
   
          memset   (   &FileOp,   0,   sizeof(FileOp)   );  
          memset   (   fPath,   0,   sizeof(fPath)   );  
          memset   (   tPath,   0,   sizeof(tPath)   );  
          FileOp.wFunc   =   FO_DELETE   ;  
          strcpy   (   fPath,   "D:\\temp\\temp"   );  
          //   strcpy   (   tPath,   "F:\\Tools\\0ffice2000.rar"   );  
          FileOp.pFrom   =   fPath;  
          FileOp.pTo   =   tPath;  
          FileOp.fFlags   =   FOF_NOCONFIRMATION;   //   不提问而强迫删除  
          if   (   !   SHFileOperation   (   &FileOp   )   )   printf   (   "OK"   );  
          else   printf   (   "Failed!"   );  
   
          while(   !   kbhit()   );   getch();  
          return   0;  
  }  
  Top

2 楼Tyguest228(天涯)回复于 2003-11-04 23:57:55 得分 12

//这个通用的,作者是谁我不知,贴出来你自己试试吧.  
   
  enum   modes{ONLEFILE,   ALLDIRFELE};    
  bool   DeleteDirFile(String   sPathfile,   modes   MD   )    
  {    
  String   s1,s2;    
  HWND   h   =   NULL;    
  WIN32_FIND_DATA   data;    
   
  (sPathfile[sPathfile.Length()]=='\\')   ?   s1=sPathfile   :   s1=sPathfile+"\\";    
  s2   =   s1   +"*.*";    
  if((h=FindFirstFile(s2.c_str(),&data))!=0)    
  do    
  {    
  if(   (String(data.cFileName)==".")   ||   (String(data.cFileName)=="..")   )    
  continue;    
  if   ((data.dwFileAttributes==FILE_ATTRIBUTE_DIRECTORY)   &&   (MD!=ONLEFILE))   //删除文件夹    
  DeleteDirFile(s1+String(data.cFileName),   MD);    
  s2   =   s1+String(data.cFileName);   //提取文件名    
  DeleteFile(s2.c_str());   //删除文件    
  }while   (FindNextFile(h,&data));    
  FindClose(h);    
  if   (MD!=ONLEFILE)    
  RemoveDirectory(s1.c_str());   //删除文件夹    
  return   True;    
  }  
   
  //如果可以用别忘了告诉我一声喔!   ty7228@163.comTop

3 楼sensing(想到韩国去工作+留学!)回复于 2003-11-13 21:43:09 得分 0

我现在才发现自己的函数是正确,只是只读的,谢谢楼上的提醒!!  
  setfileattr()Top

相关问题

  • 什么c函数能删除不为空的目录
  • 想要一个删除整个目录的API函数和一个COPY整个目录的函数,please help me
  • 给46分请教,删除一个非空目录用哪个函数?
  • 请问删除目录中的文件(包括子目录)的函数是什么?
  • 谁有删除当前目录下所有子目录及其文件的函数
  • 有没有函数可以直接删除一个目录(不论目录中有没有文件)(声明本人不需要自己写函数)
  • 一个删除文件目录的函数,但说着不到TSHFILEOPSTRUCT;这种数据类型???
  • 急寻:怎样使用一个函数或别的方法删除一个非空目录?
  • 自己写的一个删除任意级数目录的函数(用kill和rmdir),大家一起看看
  • 请教:删除特定目录下某一文件应该使用什么函数?"c:\output.txt

关键词

  • fileop
  • spathfile
  • tpath
  • 删除
  • fpath
  • memset
  • sizeof
  • include
  • data

得分解答快速导航

  • 帖主:sensing
  • Behard
  • Tyguest228

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo