webForumDet fria alternativet

översätta absolut sökväg till relativ

.NET

4 svar · 437 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Frågan#1

Yoo!
Jag hämtar upp några mappar via klassen DirectoryInfo.
Via DirectoryInfo.FullName så får jag hela sökvägen, nu undrar jag:
Finns det nån inbyggd funktion för att få den relativa sökvägen från webroten?
Ex

DI.FullName = D:\inetpub\minRoot\mappen --> nån funktion --> /mappen
Medlem sedan okt. 20041 556 inlägg
#2

DI.FullName = "~/mappen/sidan.aspx"

kanske?

Medlem sedan juni 20003 076 inlägg
#3

Nej, alltså DI.FullName returnerar: D:\inetpub\minRoot\mappen
Typ: string minVariabel = DI.FullName;

Jag har alltså den absolute sökvägen till "mappen", av denna sträng vill jag få ut den relativa vägen, dvs: /mappen

Det jag söker är helt enkelt en funktion tvärtemot: Server.MapPath() ! :)

Medlem sedan juni 20003 076 inlägg
#4

Nevermind.
Jag byggde om lite i koden istället så jag behöver inte längre funktionen!

Det vore kul att veta förståss om det finns en invert Server.mappath! :)

Medlem sedan dec. 19996 721 inlägg
#5

En inverterad Server.MapPath går inte att göra. En virtuell sökväg kan bara motsvaras av en fysisk sökväg, men en fysisk sökväg kan motsvaras av flera virtuella.

Om man bara har en enkel struktur utan virtuella mappar etc. kan man dock prova på att göra så här:

string virtPath="/" + physPath.Substring(Request.PhysicalApplicationPath.Length).Replace(System.IO.Path.DirectorySeparatorChar,'/')
255 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)