IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  XML  >

Working XML: Link management and preparing the future

XM matures, with features enough to publish simple Web sites

developerWorks

返回原文..

Benoit Marchal ( bmarchal@pineapplesoft.com)
Consultant, Pineapplesoft
August 2001

Listing 6. DirectoryWalker redux
protected void walk(File source,File target,int depth)
   throws IOException, XMException
{
   if(source.isDirectory())
   {
      // File rulesFile = new File(source,Constants.rulesFilename);
      File[] files = source.listFiles(),
             dirs = new File[files.length],
             docs = new File[files.length];
      int idirs = 0,
          idocs = 0;
      for(int i = 0;i < files.length;i++)
      {
         if(files[i].isDirectory())
            dirs[idirs++] = files[i];
         else if(files[i].isFile())
            docs[idocs++] = files[i];
         else
            throw new NotImplementedException("Expecting file or directory");
      }
      if(!(target.exists() && target.isDirectory()))
         if(!target.mkdirs())
            messenger.fatal(new XMException(
               Resources.getString("cannotcreatedirectory"),
                                   new Object[] {target.getAbsolutePath()}));
      for(int i = 0;i < idocs;i++)
      {
         Mover mover = supervisor.getMover(docs[i]);
         File result = mover.move(docs[i],target,depth);
         messenger.progress(docs[i],result);
      }
      for(int i = 0;i < idirs;i++)
         walk(dirs[i],new File(target,dirs[i].getName()),depth + 1);
   }
   else
      messenger.fatal(new XMException(Resources.getString("notdirectory"),
                                      new Object[] {source.getAbsolutePath()}));
}

返回原文.
    关于 IBM 隐私条约 联系 IBM 使用条款