0

コード: - すべてのファイルをリストし、ファイルがサブディレクトリであるかどうかをチェックし、それを出力します。すべてのサブディレクトリに新しいファイルが作成されるように、if 句内に createNewFile() を使用してコードを埋め込む必要があります。どうすればいいのですか?

File directory = new File(directoryName);                          
    //get all the files from a directory            
    File[] fList = directory.listFiles();               
    for (File file : fList){                    
        if (file.isFile()){                         
            System.out.println("Files: " + file.getName());                     
        } else if (file.isDirectory()){     
            file.createNewFile();
            System.out.println("Subdirectory :" +file.getName());   

        }               
    }           
} 
4

2 に答える 2

2

あなたのコードは次のとおりです。「現在繰り返しているファイルがディレクトリの場合、このディレクトリから新しいファイルを作成します」。したがって、fileあなたの反復はfileあなたが作成しようとしているものです。これがうまくいくとは驚きです。代わりに、new Fileこのディレクトリを親として を作成します。

何かのようなもの:

new File(file, "somefilename");
于 2013-05-03T05:09:18.610 に答える
2

作成する新しいファイルに新しい名前を付ける必要があります。

else if (file.isDirectory()){
            File nf = new File(file.getAbsolutePath()+File.separator+"newFile")     
            nf.createNewFile();
            System.out.println("Subdirectory :" +file.getName());   

        }

このようなもの。

于 2013-05-03T05:09:43.400 に答える