Обновления ярлыка .url в Windows

Рейтинг: -1Ответов: 1Опубликовано: 14.05.2023

Допустим у меня есть код

public class Main {
 public static void main(String[] args)  throws IOException {
    Path path = Paths.get("D:\\Users\\Desktop\\Test.url");
    Files.writeString(path,"[InternetShortcut]"+"\n"+"URL=https://example.com");
    }

Создаю .url ярлык все хорошо, но при изменении ссылки, или создании ярлыка заново остается предыдущая ссылка. Если я преобразю его в .txt то там записана новая ссылка, но при обратном преобразованни снова старая. Так вот предполагаю что проблема в том что Explorer как-то кеширует ссылку, так-как при перезапуске проводника обновляется и ссылка. Хочу узнать как устранить или обойти эту проблему

Ответы

▲ 1

Вы все правильно заметили, что Explorer как-то кеширует ссылку, но для того что-бы она изменилась, не обязательно перезапускать Explorer. Если чуть-чуть подождать, (на моем ПК это занимает примерно 40 секунд) то ссылка изменяется. Попробовал обойти это вот таким способом:

    public static void main(String[] args) throws IOException, InterruptedException {
        Path path = Paths.get("D:\\TEST\\Test2.url");
        if (Files.deleteIfExists(path)) {
            System.out.println("start deleting the file".toUpperCase());
            for (int i = 0; i < 15; i++) {
                System.out.print(".");
                Thread.sleep(1000);
            }
            System.out.println("\nfile deletion completed".toUpperCase());
        }
        Files.writeString(path, "[InternetShortcut]" + "\n" + "URL=https://example_05.com");
    }

Но все равно это 15 секунд)