我必须读取一个文件夹,计算文件夹中的文件数(可以是任何类型),显示文件数,然后将所有文件复制到另一个文件夹(指定)。
我将如何进行?
我必须读取一个文件夹,计算文件夹中的文件数(可以是任何类型)显示文件数
您可以在 javadocs 中找到所有这些功能java.io.File
然后将所有文件复制到另一个文件夹(指定)
这有点棘手。阅读:Java 教程 > 文件的读取、写入和创建 (请注意,其中描述的机制仅在 Java 7 或更高版本中可用。如果 Java 7 不是一个选项,请参阅之前的许多类似问题之一,例如:Fastest写入文件的方式?)
你有所有的示例代码:
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);
}
}
然而,这些东西很容易被骗:)
我知道这为时已晚,但下面的代码对我有用。它基本上遍历目录中的每个文件,如果找到的文件是一个目录,那么它会进行递归调用。它只提供目录中的文件计数。
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;
}