相对路径的File.createNewFile()在更改“ user.dir” -Property
后使用错误的目录
这是我第一次在这个伟大的页面上提问,所以如果我犯错误,请耐心等待。
我想要做的是在我更改之后在我的用户目录中创建一个具有相对路径的新文件。要更改我使用的用户目录
System.setProperty("user.dir", "/data");
,然后我用File f2 = new File("f2");
创建了一个文件对象,并使用f2.createNewFile();
在我的文件系统上创建了空文件。在此之后,我希望文件出现在/ data / f2中,这就是f2.getAbsolutePath()
告诉我的内容。但是,令人困惑的是,该文件出现在“旧的,初始的”userDir中。
这是我的测试:
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
public class Main {
private static FilenameFilter filter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return (name.startsWith("f")) ? true : false;
}
};
public static void main(String[] args) throws IOException {
String userDirPropertyName = "user.dir";
File initialUserDir = new File(System.getProperty(userDirPropertyName));
System.out.println("files in " + initialUserDir.getAbsolutePath() + ":");
for (File file : initialUserDir.listFiles(filter)) {
System.out.println(" - " + file.getAbsoluteFile());
}
System.out.println("initial userDir = " + System.getProperty(userDirPropertyName));
File f1 = new File("f1");
f1.createNewFile();
System.out.println("f1.getAbsolutePath() = " + f1.getAbsolutePath());
System.out.println("getCanonicalPath() for . = " + new File(".").getCanonicalPath());
System.setProperty(userDirPropertyName, "/data");
System.out.println("changed userDir = " + System.getProperty(userDirPropertyName));
File f2 = new File("f2");
f2.createNewFile();
System.out.println("f2.getAbsolutePath() = " + f2.getAbsolutePath());
System.out.println("getCanonicalPath() for . = " + new File(".").getCanonicalPath());
System.out.println("files in " + initialUserDir.getAbsolutePath() + ":");
for (File file : initialUserDir.listFiles(filter)) {
System.out.println(" - " + file.getAbsoluteFile());
}
}
}
这是输出,我得到:
/ home / pps / NetBeansProjects / UserDirTest中的文件:
initial userDir = / home / pps / NetBeansProjects / UserDirTest
f1.getAbsolutePath()= / home / pps / NetBeansProjects / UserDirTest / f1
getCanonicalPath()for。 = / home / pps / NetBeansProjects / UserDirTest
更改了userDir = / data
f2.getAbsolutePath()= / data / f2
getCanonicalPath()for。 = /数据
/ home / pps / NetBeansProjects / UserDirTest中的文件:
- / home / pps / NetBeansProjects / UserDirTest / f1
- / home / pps / NetBeansProjects / UserDirTest / f2
f1和f2出现在同一个目录中虽然我更改了user.dir!!
任何人都可以帮我吗?
非常感谢
没有找到相关结果
已邀请:
3 个回复
玖料萄
或
创建您想要的目录,然后使用
,其中myDir是您的新目录。
纫合峭
并导致各种奇怪的效果。
骨乏唯瓜