Как вставить специфичные для платформы пути в базу данных на Java - PullRequest
2 голосов
/ 23 марта 2012

Я работаю над приложением, которое обрабатывает большое количество файлов, помещенных в каталог.Я хочу вставить полный путь каждого файла, который обрабатывается моим приложением, в базу данных.Если файл, который уже обработан приложением, повторно передается для повторной обработки пользователем, то я хочу удалить все данные, обработанные для файла, из базы данных, указав полный путь к файлу, а затем перейти кфайл, как если бы это был новый файл.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я запускаю приложение через eclipse, путь к файлу, вставленный в базу данных, выглядит следующим образом: -

   D:\Trunk\App\Source

Когда я объединяю имя файла с его путем (pathString + File.seperator + fileNameString), т. Е. Полный путь, вставленный в базу данных, выглядит следующим образом

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

Но если я создаю банку длямое приложение и запустить JAR, дважды щелкнув JAR, путь, вставленный в базу данных, выглядит следующим образом: -

   D:/Trunk/App/Source

После того, как я конкатенирую имя файла с его путем (pathString + File.seperator +fileNameString), т.е. полный путь, вставленный в базу данных, выглядит следующим образом:

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

ПриложениеНе удается удалить данные для файла, который повторно передается для обработки, если приложение запускается двойным щелчком по банке вместо запуска приложения из затмения.Используемый для удаления запрос одинаков независимо от запуска приложения из eclipse или двойного щелчка по jar

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

Ответы [ 2 ]

2 голосов
/ 23 марта 2012

Просто преобразуйте все "\" в "/" или наоборот для всех путей файлов, которые вы обрабатываете.

1 голос
/ 23 марта 2012

Конвертировать путь в URI и сохранить в базе данных. Затем воссоздайте файл из URI.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...