Coverage Report - fr.paris.lutece.plugins.releaser.util.file.FileUtils
 
Classes in this File Line Coverage Branch Coverage Complexity
FileUtils
0 %
0/19
0 %
0/18
4,333
 
 1  
 /*
 2  
  * Copyright (c) 2002-2013, Mairie de Paris
 3  
  * All rights reserved.
 4  
  *
 5  
  * Redistribution and use in source and binary forms, with or without
 6  
  * modification, are permitted provided that the following conditions
 7  
  * are met:
 8  
  *
 9  
  *  1. Redistributions of source code must retain the above copyright notice
 10  
  *     and the following disclaimer.
 11  
  *
 12  
  *  2. Redistributions in binary form must reproduce the above copyright notice
 13  
  *     and the following disclaimer in the documentation and/or other materials
 14  
  *     provided with the distribution.
 15  
  *
 16  
  *  3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its
 17  
  *     contributors may be used to endorse or promote products derived from
 18  
  *     this software without specific prior written permission.
 19  
  *
 20  
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 21  
  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 22  
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 23  
  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
 24  
  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 25  
  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 26  
  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 27  
  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 28  
  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 29  
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 30  
  * POSSIBILITY OF SUCH DAMAGE.
 31  
  *
 32  
  * License 1.0
 33  
  */
 34  
 package fr.paris.lutece.plugins.releaser.util.file;
 35  
 
 36  
 import java.io.File;
 37  
 import java.io.FileOutputStream;
 38  
 import java.util.ArrayList;
 39  
 import java.util.List;
 40  
 
 41  
 import org.apache.commons.fileupload.FileItem;
 42  
 import org.apache.commons.fileupload.disk.DiskFileItem;
 43  
 
 44  
 
 45  0
 public class FileUtils
 46  
 {
 47  
     public static final boolean STATUS_OK = true;
 48  
     public static final boolean STATUS_ERROR = false;
 49  
 
 50  
     public static boolean delete( File file, StringBuffer logBuffer )
 51  
     {
 52  0
         if ( file.isDirectory(  ) )
 53  
         {
 54  0
             boolean bStatus = STATUS_OK;
 55  
 
 56  0
             for ( String fileName : file.list(  ) )
 57  
             {
 58  
                 //Names denoting the directory itself and the directory's parent directory are not included in the result
 59  0
                 bStatus &= delete( new File( file.getAbsolutePath(  ) + File.separator + fileName ), logBuffer );
 60  
             }
 61  
         }
 62  
 
 63  0
         logBuffer.append( "DELETING " + file.getAbsolutePath(  ) + "\n" );
 64  
 
 65  0
         if ( !file.delete(  ) )
 66  
         {
 67  0
             logBuffer.append( "UNABLE TO DELETE : " + file.getAbsolutePath(  ) );
 68  
 
 69  0
             return STATUS_ERROR;
 70  
         }
 71  
 
 72  0
         return STATUS_OK;
 73  
     }
 74  
 
 75  
     public static List<String> list( String strDirPath, String strFileExtension )
 76  
     {
 77  0
         return list( strDirPath, strFileExtension, true );
 78  
     }
 79  
     
 80  
     public static List<String> list( String strDirPath, String strFileExtension, boolean bRecursive )
 81  
     {
 82  0
         List<String> strFileList = new ArrayList<String>(  );
 83  0
         File file = new File( strDirPath );
 84  
 
 85  0
         for ( File fileChild : file.listFiles( ) )
 86  
         {
 87  0
             if ( fileChild.isDirectory(  ) && bRecursive )
 88  
             {
 89  0
                 strFileList.addAll( list( fileChild.getAbsolutePath( ), strFileExtension , bRecursive) );  
 90  
             }
 91  0
             else if ( fileChild.isFile( ) && ( ( strFileExtension == null ) || file.getName(  ).endsWith( strFileExtension ) ) )
 92  
             {
 93  0
                 strFileList.add( file.getName(  ) );
 94  
             }
 95  
         }
 96  
 
 97  0
         return strFileList;
 98  
     }
 99  
     
 100  
     
 101  
     
 102  
     
 103  
    
 104  
 }