我有两个字符串。一个人命名文件夹的绝对(或相对)路径。另一个名称是带有可能不安全字符的文件名:
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将尝试将其解析为可选的方案:。第二种方法失败,因为它返回的第一个和第二个半转换为由系统依赖'/'字符分隔的%八进制表示法。
有没有办法连接两个字符串,将结果转换为可写文件名,并返回一个可用于创建文件的有效URI?