如何修改我的 File 对象的 .isFile() 或 .exists() 方法检查所述文件的位置?
Posted
技术标签:
【中文标题】如何修改我的 File 对象的 .isFile() 或 .exists() 方法检查所述文件的位置?【英文标题】:How can I modify where my File object's .isFile() or .exists() methods checks for said file? 【发布时间】:2013-11-14 03:19:29 【问题描述】:我被困了几个小时,因为在我的条件循环中,.isFile 或 .exists 方法总是返回 false.. 即使文件确实存在。
我想知道我在初始化时传递给我的文件的字符串是否被某种方式覆盖了......但事实并非如此,正如我所怀疑的那样。
原来 .isFile 和 .exists() 方法查看的目录或路径是
C:\Users\MyComputerName\workspace\NameOfMyJavaProject\
目录。
这是存储我所有东西的默认设置。所以这一切都点击了,为什么我的布尔变量总是返回 false 并允许创建相同的命名文件是有道理的。因为它会查看我在上面发布的目录,而不是我创建文件的位置。因为我有在我的F:\
驱动器中创建的文件。
我该怎么做才能让 .isFile() 和 .exists() 方法查看我的 F:\
驱动器?
【问题讨论】:
你能给我们看一些代码吗?你的问题就目前而言没有多大意义。File::exists
没有硬编码以查看某些特定路径。
代码很乱,所以我试图为你省去所有的麻烦。但我给马特克拉克的解释就足够了。而且由于它不是硬编码的..那么如果文件存在,它在哪里看?哦,我想补充一点,我的文件是通过writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("F:\\"+ text +".txt"), "utf-8"));
编写的,所以我不能按照 Makky 的建议去做。
【参考方案1】:
Boolean exists = new File("F:\testFile.txt").exists();
【讨论】:
非常感谢,我发现这就是我创建文件的方式。【参考方案2】:对我来说这没有多大意义,但无论如何我都会尝试一下。
.exists
和 .isFile
方法并不是一直引用一个点,而是它已经设置的文件。
File f = new File("C:\FileOne.txt");
if(f.exists())
System.out.println("FileOne Exists at " + f.getAbsolutePath());
【讨论】:
好的。当我的File
对象checkFile
调用方法.getAbsolutePath();
时,返回的路径是C:\Users
等。但是,我有一个方法可以将此文件创建到F:\ 路径/目录中所以假设我创建一个名为“电话号码”的文件,这是 .txt 文件,其中包含我的电话号码当我尝试再次创建一个名为“电话号码”(同名)的 .txt 文件时,布尔变量应该返回 true .. 但是返回 FALSE,我认为这是因为 checkFile.isFile()
方法查看的位置与实际创建文件的位置不同。【参考方案3】:
我解决了这个问题。 Makky 帮了我很多忙。
当我创建名为checkFile
的File
对象时,只返回true
或false
via
boolean yesOrNo = checkFile.isFile();
我简单地创建了它File checkFile = new File():
解决方案是执行以下操作
创建文件变量为File checkFile = new File("F:\\");
基本上,当我创建 checkFile 对象时,它被默认为我所有的 java 项目所在的位置,这与我的文件不同,它是在特定位置创建的。
我所要做的就是改变我创建 File 对象的方式。
我知道我的解释很奇怪,所以如果有人,几个月或几年后需要我澄清这一点,请直接戳开话题,如果需要,我会确保与你一对一交谈。
再次感谢 Makky 和其他所有参与的人。
【讨论】:
以上是关于如何修改我的 File 对象的 .isFile() 或 .exists() 方法检查所述文件的位置?的主要内容,如果未能解决你的问题,请参考以下文章