Java 列出文件系统的根目录?
我找到了一个链接 举个例子:Java 列出文件系统的根目录?,java,file,directory,Java,File,Directory,我找到了一个链接 举个例子: Iterable<Path> dirs = FileSystems.getDefault().getRootDirectories(); for (Path name: dirs) { System.err.println(name); } 如果我想用上面的代码列出C://中的文件,你能帮我弄清楚我需要做什么吗?用纯Java NIO: public static void main(final String[]
Iterable<Path> dirs = FileSystems.getDefault().getRootDirectories();
for (Path name: dirs) {
System.err.println(name);
}
如果我想用上面的代码列出C://中的文件,你能帮我弄清楚我需要做什么吗?用纯Java NIO:
public static void main(final String[] args)
{
// This will give u all Root Directories. Like: C:, D:, ...
final Iterable<Path> rootDirs = FileSystems.getDefault().getRootDirectories();
for (final Path rootDir : rootDirs)
{
if (rootDir.startsWith("C:") == false)
continue;
// This will loop through every of this root directories
try (DirectoryStream<Path> stream = Files.newDirectoryStream(rootDir))
{
for (final Path file : stream)
{
System.out.println(file.getFileName());
}
}
catch (IOException | DirectoryIteratorException x)
{
System.err.println(x);
}
}
}
我宁愿只使用File类
File[] dirs = File.listRoots();
for (File name: dirs) {
if (name.toString().equals("C:\\")){
String[] cDirs = name.list();
for (String cDir: cDirs) {
System.out.println(cDir);
}
}
}
这段代码也适用于旧的java版本,即Java1.7;这是使用文件系统的最低版本。试试这个
Iterable<Path> dirs = FileSystems.getDefault().getRootDirectories();
for (Path name: dirs) {
System.err.println(name);
if("C:\\".equalsIgnoreCase(name.toString())){
File dir = new File(name.toString());
for(File file : dir.listFiles())
System.out.println(file.getName());
}
}
}
启动java1.7的根目录可以使用
Iterable<Path> dirs = FileSystems.getDefault().getRootDirectories();
运行此代码时会发生什么?它将打印所有根文件夹中的所有文件,如C:\、d:\、e:\。请检查一下c驱动,因为问题是这样的。是的,这就是你问的,或者?我不是发问者,他/她问的是你能帮我如何使用它吗?如果我想用上面的代码列出一个C://文件,我相信您的代码不会编译。rootDir不是字符串对象,因此无法使用c:==falseNIO Magic:,执行此操作,请参阅:您确实不需要创建文件对象进行比较。只需执行以下操作:name.toString.equalsC:\\