Как решить проблему java printf (& ldquo; источник не найден. & Rdquo;) в окне отладчика Eclipse, когда тот же метод printf правильно выводит его на консоль?

Не очень, но у меня это было какое-то время:

private string getNextFileName(string fileName)
{
    string extension = Path.GetExtension(fileName);

    int i = 0;
    while (File.Exists(fileName))
    {
        if (i == 0)
            fileName = fileName.Replace(extension, "(" + ++i + ")" + extension);
        else
            fileName = fileName.Replace("(" + i + ")" + extension, "(" + ++i + ")" + extension);
    }

    return fileName;
}

Предполагая, что файлы уже существуют:

  • File.txt
  • Файл (1) .txt
  • Файл (2) .txt

вызов getNextFileName ("File.txt") вернет «Файл (3)». txt ".

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

0
задан Alex Kang 19 March 2019 в 14:25
поделиться

1 ответ

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

Ваше исключение «FileNotFound» говорит вам, что он не может найти файл, который пытается открыть ваш код (или, возможно, папку, в которой вы пытаетесь создать файл). Имейте в виду, что любое относительное расположение файла зависит от знания «каталога по умолчанию», с которого начинается процесс, выполняющий ваш код. Вы можете решить эту проблему, гарантируя, что у вас есть только абсолютные местоположения файлов (то есть, те, которые начинаются с корневого каталога на диске), хотя это может быть проблемой для написания программ для запуска на разных машинах. Для упражнения во время обучения, я думаю, это хорошо.

0
ответ дан arcy 19 March 2019 в 14:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: