gpt4 book ai didi

java - 如何确保数据库中的文件路径共享相同的文件分隔符?

转载 作者:行者123 更新时间:2023-12-01 15:27:45 26 4
gpt4 key购买 nike

我想使用SELECT ... WHERE LIKE查询数据库中文件的路径 (VARCHAR)。但这些文件可以从 Windows 和 UNIX/LINUX 插入数据库,因此文件分隔符可能不同,这使得 WHERE LIKE运营商没用。我尝试在 DTO set() 方法中转换路径,例如:

public static final String FILE_SEPARATOR = File.separator;
public static final String ESCAPED_FILE_SEPARATOR = Pattern.quote(FILE_SEPARATOR);

public static String createPortablePath(String path) {
if ((FILE_SEPARATOR).equals("/")) {
return path;
} else {
return path.replaceAll(ESCAPED_FILE_SEPARATOR, "/");
}

这有效,但也使程序的行为不同,并且很难确定为什么会发生(可能有一些行试图将文件 DTO 的路径作为字符串进行比较,而不从中创建 File 对象)。这个问题有解决方案吗 - 我的意思是可能像 File.setReturnedFilePathSeparator(char separator);因此,所有 File 对象在从中获取路径时都将使用一种类型的分隔符。

最佳答案

您可以将所有路径存储为 URIs 。这将保证您获得独立于操作系统的统一表示。您不必再关心文件分隔符。

关于java - 如何确保数据库中的文件路径共享相同的文件分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9965374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com