[jboss-cvs] jbosside/core/plugins/org.jboss.ide.eclipse.core/src/main/org/jboss/ide/eclipse/core/util ...

Marshall Culpepper mculpepper at jboss.com
Fri Feb 9 14:21:54 EST 2007


  User: mculpepper
  Date: 07/02/09 14:21:54

  Modified:    core/plugins/org.jboss.ide.eclipse.core/src/main/org/jboss/ide/eclipse/core/util 
                        ResourceUtil.java
  Log:
  added a utility to recursively create an IFile (i.e, the file and any directories it's under that do not exist)
  
  Revision  Changes    Path
  1.4       +39 -0     jbosside/core/plugins/org.jboss.ide.eclipse.core/src/main/org/jboss/ide/eclipse/core/util/ResourceUtil.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ResourceUtil.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/core/plugins/org.jboss.ide.eclipse.core/src/main/org/jboss/ide/eclipse/core/util/ResourceUtil.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- ResourceUtil.java	14 Sep 2006 19:54:12 -0000	1.3
  +++ ResourceUtil.java	9 Feb 2007 19:21:54 -0000	1.4
  @@ -21,8 +21,15 @@
    */
   package org.jboss.ide.eclipse.core.util;
   
  +import java.io.InputStream;
  +
  +import org.eclipse.core.resources.IFile;
  +import org.eclipse.core.resources.IFolder;
  +import org.eclipse.core.resources.IProject;
   import org.eclipse.core.resources.IResource;
   import org.eclipse.core.runtime.CoreException;
  +import org.eclipse.core.runtime.IPath;
  +import org.eclipse.core.runtime.IProgressMonitor;
   
   public class ResourceUtil
   {
  @@ -48,4 +55,36 @@
            e.printStackTrace();
         }
      }
  +   
  +   /**
  +    * This will create a file (using IFile.create()) and any parent directories that do not exist as well.
  +    * @param file The file to create
  +    * @param source The input stream that will be copied as the file's contents
  +    * @param force Whether or not to force creation
  +    */
  +   public static void safeCreateFile (IFile file, InputStream source, boolean force, IProgressMonitor monitor)
  +   	throws CoreException
  +   {
  +	   if (file.exists()) return;
  +	   
  +	   IProject project = file.getProject();
  +	   
  +	   if (project.isAccessible())
  +	   {
  +		 IPath relativePath = file.getProjectRelativePath();
  +		 int folderCount = relativePath.segmentCount() - 1;
  +		 
  +		 for (int i = 0; i < folderCount; i++)
  +		 {
  +			 IFolder folder = project.getFolder(relativePath.removeLastSegments(folderCount - i));
  +			 
  +			 if (!folder.exists())
  +			 {
  +				folder.create(force, true, monitor);
  +			 }
  +		 }
  +		 
  +		 file.create(source, force, monitor);
  +	   }
  +   }
   }
  
  
  



More information about the jboss-cvs-commits mailing list