Длинные имена файлов не работают с устройством PNG.Устранение неполадок и предложения по обходу - PullRequest
0 голосов
/ 17 июня 2019

Создание png-файла с помощью устройства png не удается из-за длинных имен файлов, но в соответствии с документацией имена короче, чем поддерживаемый размер.

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

Я написал функцию, которая удаляет недопустимые символы и определенные символы немецкого языка, которые, кажется, беспокоят устройство png.Однако самое последнее сообщение об ошибке, похоже, связано с длиной имени файла в команде png.Согласно документации максимальная длина имени файла составляет 511 символов, к которым я не близок.У меня три вопроса

  1. Действительно ли длина имени файла имеет значение?
  2. Если так, то почему, когда длина значительно меньше, чем должна быть согласно документации?
  3. Каким будет элегантный, подходящий обходной путь?
    Breite<-1366
    Hohe<-768

    ###This works:

    png(file="b4-Kapitel 4- Funktionen des kardiovaskulaeren, 
    haematologischen, Immun- und Atmungssystems_1366x768.png",
    width=Breite,
    height=Hohe)

    png(file="ICFGrafiken/Klassifikation der Koerperfunktionen/Kapitel 4- 
    Funktionen des kardiovaskulaeren, haematologischen, Immun- und 
    Atmungssystems/b4-Kapitel 4_1366x768.png",
    width=Breite,
    height=Hohe)

    ###This doesn't work:

    png(file="ICFGrafiken/Klassifikation der Koerperfunktionen/Kapitel 4- 
    Funktionen des kardiovaskulaeren, haematologischen, Immun- und 
    Atmungssystems/b4-Kapitel 4- Funktionen des kardiovaskulaeren, 
    haematologischen, Immun- und Atmungssystems_1366x768.png",
    width=Breite,
    height=Hohe)

Сообщение об ошибке:

Error in png(file = "ICFGrafiken/Klassifikation der Koerperfunktionen/Kapitel 4- Funktionen des kardiovaskulaeren, haematologischen, Immun- und Atmungssystems/b4-Kapitel 4- Funktionen des kardiovaskulaeren, haematologischen, Immun- und Atmungssystems_1366x768.png",  : 
  kann png()-Gerät nicht starten
In addition: Warning messages:
1: In png(file = "ICFGrafiken/Klassifikation der Koerperfunktionen/Kapitel 4- Funktionen des kardiovaskulaeren, haematologischen, Immun- und Atmungssystems/b4-Kapitel 4- Funktionen des kardiovaskulaeren, haematologischen, Immun- und Atmungssystems_1366x768.png",  :
  kann Datei 'ICFGrafiken/Klassifikation der Koerperfunktionen/Kapitel 4- Funktionen des kardiovaskulaeren, haematologischen, Immun- und Atmungssystems/b4-Kapitel 4- Funktionen des kardiovaskulaeren, haematologischen, Immun- und Atmungssystems_1366x768.png' nicht zum Schreiben öffnen
2: In png(file = "ICFGrafiken/Klassifikation der Koerperfunktionen/Kapitel 4- Funktionen des kardiovaskulaeren, haematologischen, Immun- und Atmungssystems/b4-Kapitel 4- Funktionen des kardiovaskulaeren, haematologischen, Immun- und Atmungssystems_1366x768.png",  :
  opening device failed

1 Ответ

2 голосов
/ 17 июня 2019

Проблема не связана с RStudio или командой png. Windows имеет ограничение в 260 символов для путей к файлам.

Кредит переходит к связанному Вопросу: Длинный путь / имя файла в Windows приводит к ошибке write.table () в R

Таким образом, есть 3 возможных решения (или их комбинации 3)

  • Включите поддержку LongPath в Windows 10 вручную, отредактировав реестр (который я сделал, но это кажется недостаточно и совершенно новый Проблема)
  • Настройка виртуального диска, как предложено в ответе выше, чтобы получить определенное количество «передышки» (вряд ли получу меня достаточно)
  • Использование сокращений для названий и ярлыков и предоставление полного описания только в том приложении, где они используются и необходимы.

Похоже на № 3 для меня. Спасибо всем, кто внес свой вклад.

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