Skip to Main Content

New to Java

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

File not found Exception when zipping a file

807600Aug 19 2007 — edited Aug 19 2007
Hello I seem to have run into a problem when trying to zip a directory.

I get the error:

java.io.FileNotFoundException: C:\Users\dojo\Documents\Programming\compress (Access is denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:70)
at ZipUtility.zip(ZipUtility.java:31)
at ZipUtility.main(ZipUtility.java:21)

when i run the code
import java.io.File;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import java.io.*;
 
public class ZipUtility {
	public ZipOutputStream cpZipOutputStream = null;
	public String strSource = "";		
	public String strTarget = "";		
	public static long  size          = 0;	
	public static int   numOfFiles    = 0;		
	public static void main(String args[]) {
		
		
 

		ZipUtility udZipUtility = new ZipUtility();				
		udZipUtility.strSource = "C:\\Users\\dojo\\Documents\\Programming\\compress\\restoreDump"; //args[0];		
		udZipUtility.strTarget = "C:\\Users\\dojo\\Documents\\Programming\\compress"; //args[1];		
		udZipUtility.zip();		
	}			
	
	public void zip(){				
		try		{						
			File cpFile = new File (strSource);									
			if (!cpFile.isFile() && !cpFile.isDirectory() ) {							
				System.out.println("\nSource file/directory Not Found!");							
				return;					
			}								
			FileOutputStream fos = new FileOutputStream(strTarget);			
			cpZipOutputStream = new ZipOutputStream(fos);					
			cpZipOutputStream.setLevel(9);					
			zipFiles( cpFile);					
			cpZipOutputStream.finish();					
			cpZipOutputStream.close();					
			System.out.println("\n Finished creating zip file " + strTarget + " from source " + strSource);					
			System.out.println("\n Total of  " + numOfFiles +" files are Zipped " );			
			System.out.println("\n Total of  " + size  + " bytes are Zipped  ");		
		}	catch (Exception e){							
			e.printStackTrace();				
		}		
	}		
	
	
	
	public void  zipFiles(File cpFile) {				
		
		int byteCount;
		final int DATA_BLOCK_SIZE = 2048;	
		FileInputStream cpFileInputStream;
		
		
		if (cpFile.isDirectory()) {						
			if(cpFile.getName().equalsIgnoreCase(".metadata")){ //if directory name is .metadata, skip it.					
				return;			
			}			
			File [] fList = cpFile.listFiles() ;						
			for (int i=0; i< fList.length; i++){								
				zipFiles(fList) ;						
}
}

else {
try {
if(cpFile.getAbsolutePath().equalsIgnoreCase(strTarget)){
return;
}
System.out.println("Zipping "+cpFile);
size += cpFile.length();
//String strAbsPath = cpFile.getAbsolutePath();
numOfFiles++;
String strAbsPath = cpFile.getPath();
String strZipEntryName = strAbsPath.substring(strSource.length()+1, strAbsPath.length());


//byte[] b = new byte[ (int)(cpFile.length()) ];

cpFileInputStream = new FileInputStream (cpFile) ;
ZipEntry cpZipEntry = new ZipEntry(strZipEntryName);
cpZipOutputStream.putNextEntry(cpZipEntry );

byte[] b = new byte[DATA_BLOCK_SIZE];
while ( (byteCount = cpFileInputStream.read(b, 0, DATA_BLOCK_SIZE)) != -1)
{
cpZipOutputStream.write(b, 0, byteCount);
}

//cpZipOutputStream.write(b, 0, (int)cpFile.length());
cpZipOutputStream.closeEntry() ;
} catch (Exception e) {
e.printStackTrace();
}
}
}
}




I really have no idea why its saying access denied if anyone can help that would be great.
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Sep 16 2007
Added on Aug 19 2007
3 comments
1,424 views