2012-06-12 47 views
1

我有一堆文件在一個文件夾中檢出一個存儲庫。我有一個代碼,它必須將文件夾中的文件複製到另一個文件夾。我執行以下操作:文件未找到異常

File f = new File(/* path of folder */); 
File[] fs = f.listFiles(); 
for(int i=0; i<fs.length; i++){ 
     FileChannel in = new FileInputStream(fs[i]).getChannel(); 
     FileChannel out = new FileOutputStream(/* output directory */ +File.separatorChar+files[i].getName()).getChannel(); 
     in.transferTo(0, in.size(), out); 
} 

但是,簽出目錄中的.svn文件導致問題。我得到的例外:

java.io.FileNotFoundException: /checked_out_folder/.svn (No such file or directory) 
[x]  at java.io.FileInputStream.open(Native Method) 
[x]  at java.io.FileInputStream.<init>(FileInputStream.java:120) 

是因爲它是一個隱藏文件嗎?有什麼可以解決這個問題的?或者我在這裏錯過了什麼? 感謝

+0

排除svn與if語句 – codingbiz

回答

5

我想這是因爲它是一個目錄,而不是一個文件。

目錄你必須使用mkdir方法來創建。就我所知,整個目錄都不能在java中複製。

有關如何複製directoy示例,請參見this博客文章。

+0

有沒有辦法可以防止複製隱藏文件/目錄? – user682765

+0

@ user682765:爲什麼不簡單地檢查它是否是第一個目錄? –

+0

如果您使用java7來檢測隱藏文件,請查看Attributes.readDosFileAttributes。 – jontro