gpt4 book ai didi

java 。文件和文件夹。无法定义类型

转载 作者:行者123 更新时间:2023-11-29 08:16:00 25 4
gpt4 key购买 nike

美好的一天!

我用 Java 写了方法,它必须搜索文件夹中的文件并对其进行一些操作。

所以问题是,当我尝试检查我拥有的内容(文件或目录)时,我在这两种情况下都没有收到任何信息!但正如我所见,路径看起来是正确的。

我该如何解决这个问题?

代码如下:

public void searchInDir(){

File inputFile = new File( this.fileName );
String[] namesOfFilesDir = inputFile.list();

for ( int i = 0; i < namesOfFilesDir.length; i++ )
{
String normalPath = this.getNormalPath(inputFile.getCanonicalPath()); //C:\User -> C:\\User
// Two separators for correcting path to file
String pathToCurrentFile = normalPath + File.separator + File.separator + namesOfFilesDir[i];

File f = new File( pathToCurrentFile, namesOfFilesDir[i] );


System.out.printf("FileName=%s, Path=[%s]\n", namesOfFilesDir[i], pathToCurrentFile);
System.out.println(f.isDirectory());//False
System.out.println(f.isFile());//False too
//Some other code
}
}

例如 this.fileName 包含文件夹的路径(并且此文件夹包含一个文件夹和 2 个文件)。

下一个:

    FileName=Readme.txt, Path=[C:\\workspace\\Grep\\t\\Readme.txt]
false
false
FileName=t2, Path=[C:\\workspace\\Grep\\t\\t2]
false
false
FileName=test.txt, Path=[C:\\workspace\\Grep\\t\\test.txt]
false
false

好的。程序是这么说的。

让我们以打印下一个代码为例。

File f = new File("C:\\workspace\\Grep\\t\\Readme.txt");
System.out.println(f.isFile());

程序将打印“True”。

最佳答案

这部分没有意义:

    String pathToCurrentFile = normalPath + File.separator + File.separator + namesOfFilesDir[i];
File f = new File( pathToCurrentFile, namesOfFilesDir[i] );

即使我们暂时忘记双分隔符,首先通过添加 namesOfFilesDir[i] 构造文件名,然后使用这两个构造一个 File() 对象是没有意义的-argument 构造函数,它基本上再次添加了 namesOfFilesDir[i]。尝试打印 f.getAbsolutePath(),您就会明白我的意思。它可能应该是这样的:

    File f = new File( normalPath, namesOfFilesDir[i] );

关于 java 。文件和文件夹。无法定义类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4838788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com