Seite 1 von 1

R executables ohne longPathAware im Manifest?

Verfasst: Mo Feb 13, 2023 8:41 am
von Roman
Alle file und dir Funktionen, so wie auch basename() scheitern in R unter Windows,
wenn deren Dateinamen mehr als 260 Zeichen lang sind.
Das Problem scheint zu sein, dass trotz in der Registry aktiviertem Support für lange Dateinamen in allen Executables das Manifest dafür nicht entsprechend gepflegt ist.
Dies wäre notwendig:

<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
<ws2:longPathAware>true</ws2:longPathAware>
</windowsSettings>
</application>

Hat hier jemand Infos dazu, bzw. wer kann veranlassen, das es geändert wird?

Roman

Re: R executables ohne longPathAware im Manifest?

Verfasst: Mo Feb 13, 2023 9:20 am
von bigben
Hmmm, wenn ich die Frage richtig verstehe, dann sollten die Entwickler von R R für Windows anders ausliefern. Ich könnte mir vorstellen, dass die R-devel mailing list der richtige Ort wäre sowas zu diskutieren:

https://www.r-project.org/mail.html

LG, Bernhard

Re: R executables ohne longPathAware im Manifest?

Verfasst: Mo Feb 13, 2023 1:24 pm
von Athomas
Du meinst tatsächlich "Dateinamen" - und nicht die "Summe" aus Pfad und Dateiname?

Re: R executables ohne longPathAware im Manifest?

Verfasst: Mo Feb 13, 2023 11:24 pm
von EDi
Ich würde ja sagen das ist ein "Feature" von Windows :roll:

Es gibt einen ausführlichen Artikel wie man bugs reporten kann: https://www.r-project.org/bugs.html
Ich würde aber auch erstmal in r-devel nachfragen.

Re: R executables ohne longPathAware im Manifest?

Verfasst: Di Feb 14, 2023 8:34 am
von Roman
Natürlich der ganze Pfad, aber probiert es doch bitte aus?

Re: R executables ohne longPathAware im Manifest?

Verfasst: Di Feb 14, 2023 11:08 am
von Athomas
Roman hat geschrieben: Di Feb 14, 2023 8:34 am aber probiert es doch bitte aus?
Das hört sich jetzt aber ein bisschen ungnädig an :evil: !?

Re: R executables ohne longPathAware im Manifest?

Verfasst: Di Feb 14, 2023 11:59 am
von Roman
Nein, nicht ungnädig,
es könnte ja an meiner R-Version / Windows Version liegen?
RStudio ist ebenso betroffen

Re: R executables ohne longPathAware im Manifest?

Verfasst: Di Feb 14, 2023 2:51 pm
von Athomas
Ich möchte eine Notlösung - wenn es denn partout ein Windows-Rechner sein soll - loswerden: die besteht in der Nutzung von "RStudio Server" unter WSL (Windows-Subsystem für Linux) mit Ubuntu.

Da läuft z.B. folgendes Progrämmchen problemlos durch:

Code: Alles auswählen

namelen  <- 100
dirdepth <- 30

pathname <- ""

for(i in 1:dirdepth)
  pathname[i] <- paste(sample(letters[1:26], namelen, replace=TRUE), collapse="")

dirname <- paste(pathname, collapse="/")
dir.create(dirname, recursive=TRUE)

filename <- paste0(paste(sample(letters[1:26], namelen, replace=TRUE), collapse=""), ".txt")

gesamt <- paste(c(pathname, filename), collapse="/")

write.table(1:5, gesamt)
das unter Windows (bereits) die Fehlermeldung

Code: Alles auswählen

Error in dir.create(dirname, recursive = TRUE) : 'path' too long
bringt.

Re: R executables ohne longPathAware im Manifest?

Verfasst: Di Feb 14, 2023 4:08 pm
von bigben
Roman hat geschrieben: Di Feb 14, 2023 11:59 am Nein, nicht ungnädig,
es könnte ja an meiner R-Version / Windows Version liegen?
Vielleicht habe ich den Sinn des Threads noch nicht verstanden. Was ist denn jetzt die Fragestellung? Wo man bei den R-Machern anmelden kann, dass es ein Problem gibt oder erstmal nur überprüfen, ob es das Problem gibt?


Athomas' Beispiel führt bei mir unter Windows 11 auch zu

Code: Alles auswählen

> dir.create(dirname, recursive=TRUE)
Error in dir.create(dirname, recursive = TRUE) : 'path' too long
LG,
Bernhard

Re: R executables ohne longPathAware im Manifest?

Verfasst: Di Feb 14, 2023 10:08 pm
von EDi
Roman hat geschrieben: Di Feb 14, 2023 8:34 am atürlich der ganze Pfad, aber probiert es doch bitte aus?
Ich kann es nicht ausprobieren - hab kein Windows...
Aber die Lösung mit WSL2 hört sich plausibel an.