Java os路径操作、连接和向上移动级别
我有两个关于文件和Java中的文件类的相关问题 我收集了构建路径的最佳实践方法,并将其与操作系统无关,如下所示:Java os路径操作、连接和向上移动级别,java,Java,我有两个关于文件和Java中的文件类的相关问题 我收集了构建路径的最佳实践方法,并将其与操作系统无关,如下所示: File file = new File("dir" + File.separator + "filename.ext"); String path = some_func("arbitrary", "number", "of", "subdirs", "filename.ext"); String rel_path = ".." + File.separator + "file
File file = new File("dir" + File.separator + "filename.ext");
String path = some_func("arbitrary", "number", "of", "subdirs", "filename.ext");
String rel_path = ".." + File.separator + "filename.ext";
String rel_path = File.level_up + File.separator + "filename.ext";
File file = new File("dir" + File.separator + "filename.ext");
我的第一个问题是,“是否有Java中内置的python os.path.join函数的Java等价物?”
i、 e.是否有一个功能可以让我执行以下操作:
File file = new File("dir" + File.separator + "filename.ext");
String path = some_func("arbitrary", "number", "of", "subdirs", "filename.ext");
String rel_path = ".." + File.separator + "filename.ext";
String rel_path = File.level_up + File.separator + "filename.ext";
File file = new File("dir" + File.separator + "filename.ext");
我怀疑如果存在这样的情况,我可能需要向函数传递一个字符串数组,而不是任意数量的参数,但是上面的方法是理想的
但不管以上问题的答案如何,我的第二个问题是,“在指定路径时,是否有一种向上移动标高的内置方法?”
i、 e.这样做的正确方法是:
File file = new File("dir" + File.separator + "filename.ext");
String path = some_func("arbitrary", "number", "of", "subdirs", "filename.ext");
String rel_path = ".." + File.separator + "filename.ext";
String rel_path = File.level_up + File.separator + "filename.ext";
File file = new File("dir" + File.separator + "filename.ext");
还是有这样的事情:
File file = new File("dir" + File.separator + "filename.ext");
String path = some_func("arbitrary", "number", "of", "subdirs", "filename.ext");
String rel_path = ".." + File.separator + "filename.ext";
String rel_path = File.level_up + File.separator + "filename.ext";
File file = new File("dir" + File.separator + "filename.ext");
干杯
我收集了构建路径的最佳实践方法,并将其与操作系统无关,如下所示:
File file = new File("dir" + File.separator + "filename.ext");
String path = some_func("arbitrary", "number", "of", "subdirs", "filename.ext");
String rel_path = ".." + File.separator + "filename.ext";
String rel_path = File.level_up + File.separator + "filename.ext";
File file = new File("dir" + File.separator + "filename.ext");
或者像这样(参见java.io.File
的构造函数的API文档):
请注意,这只需要两个参数—父目录的名称和文件名(不是任意的子目录列表)
您正在查找java.nio.file.path.get()
:
请注意,它为您提供了一个路径
而不是文件
,如果您确实需要文件
,请在路径上调用toFile()
注意:这是Java 7中的所有新功能。据我所知,Java 6中没有这种功能,但您可以使用Apache的StringUtils来实现相同的效果:
如上所述,components
是一个Iterable
或文件路径组件的数组
e、 g.stringpath=StringUtils.join(新字符串[]{“foo”,“bar”},File.separator)代码>关于您的第一个问题,Jesper说得对,如果您使用的是Java7,java.nio.Pages.get()是最好的
在你的问题的第二部分,考虑使用:
file.getParentFile().getName();
导航到给定文件(或目录)的父级。file.level\u up
->。“
。尽管在praxis中,/
也可以在Windows上运行。