是否有更简洁的方法来表示文件系统URL中的父路径?

时间:2016-06-22 06:02:31

标签: java url path filesystems uri

我有一个源路径,我收到的文件系统URL,我想从中解析为上面两个父母的绝对路径;最终类型为Path对象是理想的。为此,我必须将其转换为URI,然后转换为Path,然后再将其调用getParent()两次。

是否有更简洁的方法来执行此操作,以便我可以使用相对字符串URLURIPath../..执行某些转换?我总是发现getParent()多次调用横向路径,一眼就看不到直观,而不是提供../的相对路径等。

// Example file system path as a URL
URL u = new URL("file:///a/b/c");

// Must convert to URI and then call 'getParent()' twice
Path p = Paths.get(u.toURI()).getParent().getParent();

1 个答案:

答案 0 :(得分:0)

如果您在其他地方不需要URL变量,那么您可以跳过转换,如下所示: import paramiko transport = paramiko.Transport((host_name, 22)) transport.connect(username = username, password = password) sftp = paramiko.SFTPClient.from_transport(transport)

现在,下一部分可能被视为比它需要的更复杂,但是如果你只需要文件夹名称,你可以做一个.getName(0)而不是两个.getParent()。但是,当您将其打印出来时,这不包括根,并且可能无法满足您的需求。

我希望这会有所帮助。