ClearDirectory 删除目录

本文介绍了一个用于递归删除Windows文件夹及其内容的C++函数ClearDirectory。该函数使用FindFirstFile和FindNextFile来枚举指定路径下的所有文件及子目录,并通过递归调用自身来清空子目录,最后移除空目录。
 ClearDirectory(const char* szPath)
{
 
 if( szPath == NULL )
  return;
 string strPath = szPath;
 if( strPath.at(strPath.length()-1) != '\\' )
  strPath.append("\\");

 string strSearch = strPath+"*";
 string strTarget;

 WIN32_FIND_DATA FindFileData;
 HANDLE hFind;
 hFind = FindFirstFile(strSearch.c_str(), &FindFileData);
 if (hFind == INVALID_HANDLE_VALUE)
 {
  DWORD dwErr = GetLastError();
  return;
 }
 do
 {
  if( !(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) )
  {
   strTarget = strPath+FindFileData.cFileName;
   DeleteFile(strTarget.c_str());
  }
  else
  {
   if( 0 != strcmp(FindFileData.cFileName, ".") &&
    0 != strcmp(FindFileData.cFileName, "..") )
   {
    strTarget = strPath+FindFileData.cFileName;
    Linkwork::Win32::ClearDirectory(strTarget.c_str());
    RemoveDirectory(strTarget.c_str());
   }
  }
 } while( FindNextFile(hFind, &FindFileData) );
 FindClose(hFind);
 
}

转载于:https://www.cnblogs.com/ahuo/archive/2009/03/12/1409474.html

2025-03-22 21:22:25,122 WARN namenode.NameNode: Encountered exception during format java.io.IOException: Cannot create directory /opt/hadoop/tmp/dfs/name/current at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.clearDirectory(Storage.java:447) at org.apache.hadoop.hdfs.server.namenode.NNStorage.format(NNStorage.java:591) at org.apache.hadoop.hdfs.server.namenode.NNStorage.format(NNStorage.java:613) at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:189) at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:1285) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1733) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1841) 2025-03-22 21:22:25,166 INFO namenode.FSNamesystem: Stopping services started for active state 2025-03-22 21:22:25,167 INFO namenode.FSNamesystem: Stopping services started for standby state 2025-03-22 21:22:25,169 ERROR namenode.NameNode: Failed to start namenode. java.io.IOException: Cannot create directory /opt/hadoop/tmp/dfs/name/current at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.clearDirectory(Storage.java:447) at org.apache.hadoop.hdfs.server.namenode.NNStorage.format(NNStorage.java:591) at org.apache.hadoop.hdfs.server.namenode.NNStorage.format(NNStorage.java:613) at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:189) at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:1285) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1733) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1841) 2025-03-22 21:22:25,179 INFO util.ExitUtil: Exiting with status 1: java.io.IOException: Cannot create directory /opt/hadoop/tmp/dfs/name/current 2025-03-22 21:22:25,207 INFO namenode.NameNode: SHUTDOWN_MSG:
最新发布
03-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值