Revision 34 1.10/trunk/libraries/lib3DMap/src/org/gvsig/gvsig3d/map3d/MapContext3D.java

View differences:

MapContext3D.java
635 635
		// clear cache
636 636

  
637 637
		if (bRemoveCache) {
638
			String layerCacheDir = Layer3DProps.m_cacheDir + "/"
639
			+ _terrain.getTerrainName() + "/" + props.getCacheName();
640
			removeCache(layerCacheDir);
638
			
639
			String layerCacheDir = Layer3DProps.m_cacheDir + File.separator
640
			+ _terrain.getTerrainName() + File.separator + props.getCacheName();
641
			
642
			FLayerCacheService cacheServices = (FLayerCacheService) props.getCacheService();
643
			if(cacheServices != null)
644
			{
645
				try {
646
					cacheServices.free();
647
					props.setCacheService(null);
648
				} catch (Throwable e) {
649
					// TODO Auto-generated catch block
650
					e.printStackTrace();
651
				}
652
			}
653

  
654
			removeCache(new File(layerCacheDir));
641 655
		}
642 656

  
643 657
		// refresh layer in terrain
......
669 683
		}
670 684
	}
671 685

  
672
	private boolean removeCache(String folder) {
673
		File dir = new File(folder);
674
		if (dir.isDirectory()) {
675
			String[] children = dir.list();
676
			for (int i = 0; i < children.length; i++) {
677
				boolean success = removeCache(folder + "/" + children[i]);
678
				// Do not interrupt if it can't delete one file
679
				// if (!success) {
680
				// return false;
681
				// }
682
			}
683
		}
684

  
685
		// The directory is now empty so delete it
686
		return dir.delete();
686
	private boolean removeCache(File path) {
687
	    if( path.exists() ) {
688
	        File[] files = path.listFiles();
689
	        for(int i=0; i<files.length; i++) {
690
	           if(files[i].isDirectory()) {
691
	        	   removeCache(files[i]);
692
	           }
693
	           else {
694
	             files[i].delete();
695
	           }
696
	        }
697
	      }
698
	      return( path.delete() );
687 699
	}
688 700

  
689 701
	protected Layer3DProps getLayer3DProps(FLayer layer) {

Also available in: Unified diff