有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在Java中将特定于平台的路径插入数据库的文件

我正在开发一个应用程序,它可以处理目录中的大量文件。我想将应用程序处理的每个文件的完全限定路径插入数据库。如果应用程序已处理的文件被用户重新提交以进行重新处理,则我希望通过指定文件的完全限定路径,从数据库中删除为该文件处理的所有数据,然后像处理新文件一样处理该文件

我面临的问题是,当我通过eclipse运行应用程序时,插入数据库的路径名如下:-

   D:\Trunk\App\Source

在我将文件名与其路径(pathString+file.Separator+fileNameString)连接之后,即插入数据库的完全限定路径如下

   D:\Trunk\App\Source/file1.txt

但是,如果我为我的应用程序创建了一个jar,并通过双击jar来运行jar,则插入数据库的路径名如下:-

   D:/Trunk/App/Source

将文件名与其路径(pathString+file.Separator+fileNameString)连接后,即插入数据库的完全限定路径如下

  D:/Trunk/App/Source/file1.txt  

如果通过双击jar而不是从eclipse运行应用程序来运行应用程序,则应用程序无法删除重新提交以进行处理的文件的数据。无论是从eclipse运行应用程序还是双击jar,用于删除的查询都是相同的

    delete from file_table where where file = 'D:\Trunk\App\Source/file1.txt'

共 (2) 个答案

  1. # 1 楼答案

    将路径转换为URI并存储在数据库中。然后从URI重新创建文件

    String uriName = new File(path).toURI().toString()

    String path = new File(new URI(uriName)).getAbsolutePath();

  2. # 2 楼答案

    对于您处理的所有文件路径,只需将所有"\"转换为"/",反之亦然