2016-08-18 8 views
0

私はコーディング学生ではないです。私がやりたい個人的なプロジェクトのためにこれをやっています。私はこれを理解しようとしている複数のコードで何時間も費やしてきました。 私はディレクトリを選び、それが持っているすべての単一のサブディレクトリにすべてのテキストファイルに書きたいと思います。時間が経つにつれてサイズが大きくなり、このコードを編集する必要がないため、すべての単一のサブディレクトリをリストしたくありません。ディレクトリ内とサブディレクトリ内のすべてのtxtファイルに書き込む

これを実行すると、それがディレクトリで、これまでテキストファイルに書き込みますが、サブディレクトリがjava.nio.file.AccessDeniedExceptionを言う

のファイルが存在しない、それがアクセスshouldnので、私のデスクトップ上のですが

私は今何をしているのか完全に困惑しています。私が実際にプログラミングの学生だった場合、これは問題ではないだろうと思っていますが、私はそうではありません。どんな助けもありがとう。

は、ここで私がこれまで持っているものです。

public static void main(String[] args) throws IOException { 

    String dirName = "C:\\Users\\Zed\\Desktop\\Test"; 
    File dir = new File(dirName); 
    File[] files = dir.listFiles(); 
    for(File file : files){ 



    String s = new String(Files.readAllBytes(file.toPath()), StandardCharsets.UTF_8); 
    if (s.contains("w = 64")) { 


    s = s.replace("w = 64", "w = 87.04"); 
    try (FileWriter fw = new FileWriter(file)) { 
    fw.write(s);    
    fw.close(); 



    } catch (FileSystemException e) { 
     System.out.println("Access Denied"); 




      } 
     } 
    } 
} 

成功!助けようとしたすべての人にありがとう、私は本当にそれを感謝します。これは私がこの作業をするために必要な少しのコードです!

String[] extensions = new String[] { "ini"}; 
    List<File> files = (List<File>) FileUtils.listFiles(dir, extensions, true); 
    //File[] files = dir.listFiles(); 
    for(File file : files){ 

    if (file.isDirectory()) continue; 
+1

ジーを使用してチェックすると、私はAccessDeniedException'が –

+1

'java.nioのが何を意味するのか'不思議.file.AccessDeniedException'はファイルが存在しないことを意味しません。つまり、ディレクトリ内のファイルを作成、編集、または読み込む権限がありません。 –

+0

私はそれを理解していますが、実際にはこれをテストするために複数のディレクトリを作成しており、引き続きAccessDeniedExceptionを取得しています。私は完全なアクセス権を持っているので、これを取得すべきではありません。 – Zed

答えて

0

あなたは、あなたのdirNameパスにサブディレクトリを持っている、あなたは彼らに書き込もうとしますので、https://docs.oracle.com/javase/7/docs/api/java/io/File.html#isDirectory()

File[] files = dir.listFiles(); 
for(File file : files){ 
    if (file.isDirectory()) continue; 

    .... 
} 
+0

ありがとう!これは私の 'Access Denied'エラーを取り除きました。今は、サブディレクトリ内のファイルに書き込むだけではありません。驚くべきアイディアがあれば。 – Zed

+0

これが再帰的な方法であった場合、ディレクトリを見つけた場合、touは単純にその中に再帰的に入り込むことができます。 –

+0

これは再帰的な方法であるかどうかはわかりません。私は実際にコーディングについて多くのことを知らない、申し訳ありません。私はおそらくこれを理解しようとしている約5時間を費やしました。私が持っているコードは、 – Zed

関連する問題