我被困了几个小时,因为在我的条件循环中,.isFile或.exists方法总是返回false ..即使文件DID存在。
我想知道是否可能是我在初始化时传递给我的文件的字符串被某种方式覆盖了......但事实并非如此,正如我所怀疑的那样。
原来,.isFile和.exists()方法查看的目录或路径是
C:\Users\MyComputerName\workspace\NameOfMyJavaProject\
目录。
这是我存储所有内容的默认设置。所以然后点击它,这是有道理的,为什么我的布尔变量总是返回false并允许创建相同的命名文件..因为它会查看我上面发布的目录,而不是我创建文件的地方..因为我在F:\
驱动器中创建了文件。
我能做什么才能让.isFile()和.exists()方法查看我的F:\
驱动器?
答案 0 :(得分:2)
Boolean exists = new File("F:\testFile.txt").exists();
答案 1 :(得分:1)
对我而言,这没有多大意义,但无论如何我都会去。
.exists
和.isFile
方法始终不引用单个点,它是已设置的文件。
File f = new File("C:\FileOne.txt");
if(f.exists())
System.out.println("FileOne Exists at " + f.getAbsolutePath());
答案 2 :(得分:0)
我解决了这个问题。 Makky给了我很多帮助。
当我创建名为File
的{{1}}对象时,只返回checkFile
或true
false
我创建它只是boolean yesOrNo = checkFile.isFile();
解决方案是执行以下操作
将文件varialbe创建为File checkFile = new File():
基本上当我创建checkFile对象时,它默认为我所有java项目所在的位置,而不是我在特定位置创建的文件。
我所要做的就是改变我创建File对象的方式。
我知道我的言论是奇怪的,所以如果有人,几个月或几年在路上需要我澄清这一点,只要碰到线程,我会确保在需要时一对一地与你交谈。
再次感谢Makky和其他所有人。