0

我有两个字符串。一个命名文件夹的绝对(或相对)路径。另一个命名一个带有潜在不安全字符的文件名:

String folder = "C:\a\b\c\dir";

Sting file = "file name: contains-unsafe_characters?" + ".txt"

我想以如下形式将它们粉碎成字符串:

String absPath = folder + SYSTEM_INDEPENDENT_PATH_SEPERATOR + convertToPercentOctal(folder);

现在,可能有一百万种方法可以尝试做到这一点:

UriBuilder folderBuilder = UriBuilder.fromPath(folder);
UriBuilder fileBuilder   = UriBuilder.fromPath(file);
URI completeFileName = folderBuilder.build().resolve(fileBuilder.build());

或者:

URI completeFileName = UriBuilder.fromPath(folder).path(file).build();

等等

第一个代码块失败,因为文件名中可能有:。如果是这种情况,UriBuilder 将尝试将其解析为可选方案: . 第二种方法失败,因为它返回转换为 %octal 表示法的前半部分和后半部分,由系统相关的 '/' 字符分隔。

有没有办法连接两个字符串,将结果转换为可写文件名,并返回一个我可以用来创建文件的有效 URI?

4

0 回答 0