Java的:如何阅读目录文件夹,计数和不显示文件,并复制到另一个文件夹?(Java: How to

2019-08-01 20:44发布

我要读一个文件夹,算上文件夹中的文件数量(可以是任何类型的),显示文件的数量,然后将所有文件复制到另一个文件夹(指定)。

我会怎么做?

Answer 1:

我要读的文件夹,计数该文件夹中的文件的数目(可以是任何类型的)显示的文件数

你可以找到所有的这些功能中的Javadoc java.io.File

然后将所有文件复制到另一个文件夹(指定)

这是比较麻烦一些。 阅读: Java教程>阅读,写作和文件的创建 (注意机制所述有只在Java 7或更高版本,可如果你的Java 7不是一个选项,参考了许多以前类似的问题之一,比如这一个: 最快方式写入文件? )



Answer 2:

你有这里所有的示例代码:

http://www.exampledepot.com

http://www.exampledepot.com/egs/java.io/GetFiles.html

File dir = new File("directoryName");

String[] children = dir.list();
if (children == null) {
    // Either dir does not exist or is not a directory
} else {
    for (int i=0; i<children.length; i++) {
        // Get filename of file or directory
        String filename = children[i];
    }
}

// It is also possible to filter the list of returned files.
// This example does not return any files that start with `.'.
FilenameFilter filter = new FilenameFilter() {
    public boolean accept(File dir, String name) {
        return !name.startsWith(".");
    }
};
children = dir.list(filter);


// The list of files can also be retrieved as File objects
File[] files = dir.listFiles();

// This filter only returns directories
FileFilter fileFilter = new FileFilter() {
    public boolean accept(File file) {
        return file.isDirectory();
    }
};
files = dir.listFiles(fileFilter);

复制http://www.exampledepot.com/egs/java.io/CopyDir.html :

// Copies all files under srcDir to dstDir.
// If dstDir does not exist, it will be created.
public void copyDirectory(File srcDir, File dstDir) throws IOException {
    if (srcDir.isDirectory()) {
        if (!dstDir.exists()) {
            dstDir.mkdir();
        }

        String[] children = srcDir.list();
        for (int i=0; i<children.length; i++) {
            copyDirectory(new File(srcDir, children[i]),
                                 new File(dstDir, children[i]));
        }
    } else {
        // This method is implemented in Copying a File
        copyFile(srcDir, dstDir);
    }
}

但是很容易gooole这个东西:)



Answer 3:

我知道这是为时已晚,但下面的代码为我工作。 它主要通过在目录中的每个文件迭代,如果找到的文件是一个目录,然后它使递归调用。 它只提供了目录中的文件数

public static int noOfFilesInDirectory(File directory) {
    int noOfFiles = 0;
    for (File file : directory.listFiles()) {
        if (file.isFile()) {
            noOfFiles++;
        }
        if (file.isDirectory()) {
            noOfFiles += noOfFilesInDirectory(file);
        }
    }
    return noOfFiles;
}


文章来源: Java: How to read directory folder, count and display no of files and copy to another folder?