c # - Få Windows fælles sti, der kører Ubuntu-subsystem

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg udvikler en applikation. NET Core (dotnet) i C #, der skal køre på Windows 10, Linux OG i Linux-delsystemet, der kan installeres i Windows 10.


Problemet er, at applikationen skal gemme filer på en fælles placering for at lade andre applikationer bruge dem. Det vil sige, at andre applikationer (det er klienter) skal løse den samme vej som denne applikation gør. Så den samme kode skal tilføjes i alle klienterne for at vide, hvor filerne er lagrede.


Jeg søgte meget, og jeg fandt denne løsning:


Console.WriteLine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData));


Dette returnerer mig på Windows:


C:ProgramData


Og på Linux:


/usr/share


Jeg kan godt lide denne løsning, men problemet her er, at når programmet kører i et Linux-delsystem, vil jeg bruge en sti, der kan tiltrædes fra programmer, der kører på Windows indbygget.


Jeg ved, at Windows er monteret i/mnt/c/i Linux-delsystemet, men y vil ikke have hardkodede stier.


Er der nogen måde at have programmatisk (kører på Linux-undersystem) en sti i Windows-værten? Det vil sige, hvis programmet kører på Linux, er den vej, der returnerer, /usr/share , men hvis det er et delsystem, er den vej, der returnerer, /mnt/c/ProgramData (eller noget lignende).


Tak!

Bedste reference