• 21294阅读
  • 10回复

qt中怎么删除一个非空目录 [复制链接]

上一主题 下一主题
离线renmenziji
 

只看楼主 倒序阅读 楼主  发表于: 2006-07-14
qt中怎么删除一个非空目录
离线lisuzhen929
只看该作者 1楼 发表于: 2006-07-14
system( "rm -rf filedir" );
离线renmenziji

只看该作者 2楼 发表于: 2006-07-14
system() 函数包含在哪个头文件里面,我看了帮助了,不行
[ 此贴被renmenziji在2006-07-14 19:41重新编辑 ]
离线XChinux

只看该作者 3楼 发表于: 2006-07-14
http://www.qtcn.org/bbs/read.php?tid=1082
可到这个帖子里下载Borland C++ Builder帮助
里面你可方便地查到标准C++里的东西
system()函数在stdlib.h里面。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线renmenziji

只看该作者 4楼 发表于: 2006-07-16
WINDOW里面果然不能用rm,但是dos里面应该有删除非空目录的函数吧
离线shuishen
只看该作者 5楼 发表于: 2006-10-10
qt中怎么删除一个非空目录
system( "rm -rf filedir" ); 只能删除一个指定目录的非空目录,如果要删除任意一个非空目录,该怎么改??
离线ahwa
只看该作者 6楼 发表于: 2006-10-13
system("rm -rf filedir")....
it mean system(string)
so you can get the dir name append to string.
离线浪漫天使
只看该作者 7楼 发表于: 2006-10-13
bool classname::DeleteDirectory(QString &DirName)
{
//    Q_ASSERT(NULL!=DirName);
   if(NULL==DirName)    //the dirname is not null
       return false;
   
   QDir filedir(DirName);
   if(!filedir.exists())
   {
       //AfxMessageBox("路径不存在!");
       return false;
   }


   QString tempstr;
   const QFileInfoList * files = filedir.entryInfoList();
   if ( files )
   {
      QFileInfoListIterator it( *files );
      QFileInfo * fi;
      while( (fi=it.current()) != 0 )
      {
         ++it;
         tempstr = fi->fileName();
       if ( tempstr == "." || tempstr == ".." ) ; // nothing
       else if ( fi->isDir() )    //// 实现递归调用
       {
           DirName = DirName+("/")+tempstr;
             DeleteDirectory(DirName );
       }
       else if ( fi->isFile() )
       {
           QFile tempfile(tempstr);
           // 删除文件
           filedir.remove( tempfile.name() );    
       }
      }    //end while
   }    //end if
   
   // 删除文件夹
   if(filedir.exists(DirName)){
       if(!filedir.rmdir(DirName)){
           return FALSE;
       }
   }
   
   return true;    
}
离线fengshenx

只看该作者 8楼 发表于: 2006-10-16
引用第5楼shuishen2006-10-10 13:27发表的“”:
qt中怎么删除一个非空目录
system( "rm -rf filedir" ); 只能删除一个指定目录的非空目录,如果要删除任意一个非空目录,该怎么改??



char cmd[256];
char *filedir;
sprintf(cmd,"rm -rf %s",filedir);
system(cmd);
离线snowdream
只看该作者 9楼 发表于: 2010-03-25
引用第7楼浪漫天使于2006-10-13 11:13发表的  :
bool classname::DeleteDirectory(QString &DirName)
{
//    Q_ASSERT(NULL!=DirName);
   if(NULL==DirName)    //the dirname is not null
       return false;
.......


感谢分享~
QQ:273247606
希望与大家一起交流QT~
离线慕容叉叉
只看该作者 10楼 发表于: 2010-11-22
这位兄弟,能不能把你的程序完成的给我看看,我的邮箱是455911515@qq.com
谢谢啦
快速回复
限100 字节
 
上一个 下一个