找不到代码错误 - 尝试打印父目录的名称
can't find error with code - trying to print name of parent directory
如标题所示,我正在尝试打印当前目录和父目录的名称,并打印每个目录的所有文件和目录。该代码适用于当前目录。
但是当我尝试打印父目录的名称时,它不知何故只是空白。
以下是我的代码。
import java.io.*;
class IOTest2
{
public static void printList(File[] list)
{
for(int i=0; i<list.length; i++)
{
System.out.print(list[i].getName());
if(list[i].isDirectory())
System.out.println("\t \t DIR");
else
System.out.println("\t \t FILE");
}
}
public static void main(String[] args)
{
String workingDir = System.getProperty("user.dir");
File currentDir = new File(workingDir);
System.out.println("current dir: " + currentDir.getName());
File[] curList = currentDir.listFiles();
printList(curList);
System.out.println("--------------------------");
File parentDir = currentDir.getParentFile();
System.out.println("parent dir: " + parentDir.getName());
File[] parList = parentDir.listFiles();
printList(parList);
}
}
下面是我在控制台中得到的关于父目录的结果。(当前目录工作正常,所以我没有在这里包含它)
可以看到,"parent dir: "
后面是空白
parent dir:
$Recycle.Bin DIR
book DIR
bootmgr FILE
BOOTNXT FILE
Config.Msi DIR
Documents and Settings DIR
gpki DIR
hiberfil.sys FILE
Intel DIR
Irvine DIR
JavaStudy DIR
MATS DIR
MSOCache DIR
myclass DIR
MyJava DIR
NaverGame DIR
Nexon DIR
pagefile.sys FILE
PerfLogs DIR
PhoneBookVer3_duplicate class error DIR
Program Files DIR
Program Files (x86) DIR
ProgramData DIR
Recovery DIR
swapfile.sys FILE
System Volume Information DIR
Temp DIR
Users DIR
Windows DIR
XecureSSL DIR
YourJava DIR
C:\JavaStudy>
感谢您的宝贵时间:)
您的当前目录是 C:\JavaStudy
,但由于 C:
是驱动器,它不会打印出(如预期的那样)C:\
文件路径。如果要打印字符串 C:\
,而不是:
File parentDir = currentDir.getParentFile();
System.out.println("parent dir: " + parentDir.getName());
只需致电:
System.out.println("parent dir: " + currentDir.getParent());
或
File parentDir = currentDir.getParentFile();
System.out.println("parent dir: " + parentDir.getAbsolutePath());
它总是 returns 父目录的字符串(如果不存在则为 null)
在我的机器上打印出来:
--------------------------
parent dir: C:\
$Recycle.Bin DIR
etc...
如标题所示,我正在尝试打印当前目录和父目录的名称,并打印每个目录的所有文件和目录。该代码适用于当前目录。
但是当我尝试打印父目录的名称时,它不知何故只是空白。
以下是我的代码。
import java.io.*;
class IOTest2
{
public static void printList(File[] list)
{
for(int i=0; i<list.length; i++)
{
System.out.print(list[i].getName());
if(list[i].isDirectory())
System.out.println("\t \t DIR");
else
System.out.println("\t \t FILE");
}
}
public static void main(String[] args)
{
String workingDir = System.getProperty("user.dir");
File currentDir = new File(workingDir);
System.out.println("current dir: " + currentDir.getName());
File[] curList = currentDir.listFiles();
printList(curList);
System.out.println("--------------------------");
File parentDir = currentDir.getParentFile();
System.out.println("parent dir: " + parentDir.getName());
File[] parList = parentDir.listFiles();
printList(parList);
}
}
下面是我在控制台中得到的关于父目录的结果。(当前目录工作正常,所以我没有在这里包含它) 可以看到,"parent dir: "
后面是空白parent dir:
$Recycle.Bin DIR
book DIR
bootmgr FILE
BOOTNXT FILE
Config.Msi DIR
Documents and Settings DIR
gpki DIR
hiberfil.sys FILE
Intel DIR
Irvine DIR
JavaStudy DIR
MATS DIR
MSOCache DIR
myclass DIR
MyJava DIR
NaverGame DIR
Nexon DIR
pagefile.sys FILE
PerfLogs DIR
PhoneBookVer3_duplicate class error DIR
Program Files DIR
Program Files (x86) DIR
ProgramData DIR
Recovery DIR
swapfile.sys FILE
System Volume Information DIR
Temp DIR
Users DIR
Windows DIR
XecureSSL DIR
YourJava DIR
C:\JavaStudy>
感谢您的宝贵时间:)
您的当前目录是 C:\JavaStudy
,但由于 C:
是驱动器,它不会打印出(如预期的那样)C:\
文件路径。如果要打印字符串 C:\
,而不是:
File parentDir = currentDir.getParentFile();
System.out.println("parent dir: " + parentDir.getName());
只需致电:
System.out.println("parent dir: " + currentDir.getParent());
或
File parentDir = currentDir.getParentFile();
System.out.println("parent dir: " + parentDir.getAbsolutePath());
它总是 returns 父目录的字符串(如果不存在则为 null)
在我的机器上打印出来:
--------------------------
parent dir: C:\
$Recycle.Bin DIR
etc...