显示目录中所有目录的Java程序
目录是计算机文件系统的组织结构,它不仅负责存储文件,还负责在内存中定位文件。文件组织结构是一种涉及父子关系的层次结构,就像树数据结构中的那样。它会因操作系统而异,而操作系统的效率是通过最终用户的文件组织结构的难易程度来衡量的。
Java中的以下类用于列出目录内容
- Java.nio.file.Files
- org.apache.commons.io.FileUtils
- Java文件
Directory的层次结构
先决条件:文件和目录命令
- 用于编译机器上任何Java代码的终端命令
- 用于在机器上运行任何Java代码的终端命令
javac class_name.java // For Compilation
java class_name // For Execution
Action | Command |
---|---|
To navigate into the root directory | cd / |
To navigate to your home directory | cd |
To navigate up one directory level | cd .. |
To navigate to the previous directory | cd – |
To lookup for files inside the current instance directory | ls |
方法:在Java中访问目录有两种标准方法。方法讨论如下:
- 方法 1:使用 listFiles() 方法
- 方法二:使用蛮力攻击
方法一: listFiles() 方法将所有文件存储在一个数组中,以打印当前文件夹中存在的所有文件。
这是相同的实现。
Java
// Java Program to Display all directories in a directory
// Importing Classes/Files
import java.io.*;
// Importing specific File Class for directory access
import java.io.File;
class GFG {
// Main Driver code
public static void main(String[] args)
{
// Creating object of class File where
// Dot represents the current directory
File currentDir = new File(".");
displayDirectory(currentDir);
}
// Function displaying all the directories
// present in the directory
public static void displayDirectory(File dir)
{
try {
File[] files = dir.listFiles();
// For-each loop for iteration
for (File file : files) {
// Checking of file inside directory
if (file.isDirectory()) {
// Display directories inside directory
System.out.println(
"directory:"
+ file.getCanonicalPath());
displayDirectory(file);
}
// Simpley get the path
else {
System.out.println(
" file:"
+ file.getCanonicalPath());
}
}
}
// if any exceptions occurs printStackTrace
catch (IOException e) {
e.printStackTrace();
}
}
}
Java
// Java Program to Display all directories in a directory
// Importing Classes/Files
import java.io.*;
public class GFG {
// Driver main method
public static void main(String[] args)
{
/*For windos user write path in below formate-:
("F:\\folder name \\ subfolder")
*/
// Creating new instance of File
File file = new File("/Desktop");
// returns an array of all files
String[] fileList = file.list();
for (String str : fileList) {
System.out.println(str);
}
}
}
输出:终端 显示目录中的所有目录
方法2:现在,这里只考虑暴力攻击,即访问给定目录并简单地打印指定文件夹中存在的目录/文件。这是相同的实现。
Java
// Java Program to Display all directories in a directory
// Importing Classes/Files
import java.io.*;
public class GFG {
// Driver main method
public static void main(String[] args)
{
/*For windos user write path in below formate-:
("F:\\folder name \\ subfolder")
*/
// Creating new instance of File
File file = new File("/Desktop");
// returns an array of all files
String[] fileList = file.list();
for (String str : fileList) {
System.out.println(str);
}
}
}
输出:
此代码通过网络卷访问。
注意:在上面的例子中,我们写了 Linux 用户的路径。对于 Windows 用户,您必须在指定路径时使用双反斜杠。这是因为 \字符在Java中用作转义字符。因此,第一个反斜杠用作第二个反斜杠的转义字符。