Как я могу кодировать путь к файлу в имени файла, чтобы имя файла было действительным и не было конфликтов? Другими словами:Как закодировать путь к файлу в имени файла? (без коллизий, кроссплатформенная)
- Полученное имя файла не содержит специальных символов, таких как '\', ':' или '/'.
- Два разных пути к файлу никогда не закодированы в одно и то же имя файла.
Пример: путь_к_файлу "C: \ Program Files \ My Program" -> имя файла "NGQqKY4pBaP7lPKQPD6Y ..."
Этот пример приведен только для иллюстрации; могут быть лучшие (и более простые) способы сделать это.
Проблема: эта кодировка пути к файлу используется для простой проверки одного экземпляра в Java: два экземпляра программы могут запускаться одновременно, если они расположены в разных каталогах, но не тогда, когда они расположены в одном и том же каталог. Я знаю, что существуют другие способы обеспечения свойства single-instance, но я считаю, что кодировка пути к файлам является лучшей с точки зрения соотношения затрат и выгод в моей конкретной ситуации.
Но тогда C: \ foo \ bar.txt и C: \ foo%). Bar.txt будет иметь одинаковые имена. – Marii
Затем используйте мое первое преобразование. Я бы пошел со вторым, потому что NO ONE имеет файл foo%) bar.txt в своих папках AND и папку/файл с именем foo/bar.txt. – Daniel
Да, ты прав. Первое преобразование будет достаточным. :) – Marii