Как я могу закодировать путь к файлу в имени файла, чтобы имя файла было действительным и не было коллизий? Другими словами:
- Результирующее имя файла не содержит специальных символов, таких как '\', ':' или '/'.
- Два разных пути к файлам никогда не кодируются в одно и то же имя файла.
Пример: путь к файлу "C: \ Program Files \ My Program" -> имя файла "NGQqKY4pBaP7lPKQPD6Y ..."
Этот пример предназначен только для иллюстрации; могут быть лучшие (и более простые) способы сделать это.
Предпосылки проблемы: Эта кодировка пути к файлу используется для простой проверки одного экземпляра в Java: два экземпляра программы могут быть запущены одновременно, если они расположены в разных каталогах, но не в том случае, если они находятся в одном и том же каталоге. Я знаю, что есть другие способы обеспечить свойство единственного экземпляра, но я считаю, что кодировка пути к файлу является лучшей с точки зрения соотношения затрат и выгод в моей конкретной ситуации.