Deklaracja folderu w ścieżki bezwzględnej jako zmiennej

0

Cześć wszystkim.
Chciałbym się was zapytać w jaki sposób można by zadeklarować zmienną tak aby wskazywała na folder w ścieżce bezwzględnej aplikacji wg wzoru: Lub jak w ogole wskazuje się ścieżkę bezwzględną?

string sciezka = (sciezka_bezwzględna) + (/folder_w_tej_scieżce);

0

var path = Path.Combine(@"C:\photos", "summer_2023"); = C:\photos\summer_2023

o to chodzi?

0

@WeiXiao:
Ktos mi uciął część tekstu.

Chodzi mi o to aby zapis (adres/hyperlink) komórki w pliku access pozwalał do przejścia do podstrony głównej aplikacji asp net tak by uruchomienie aplikacji (i podstron) mogło się odbywać bez względu z jakiego komputera (i ścieżki) to będzie uruchomione. Tak by nie był to np adres typu d:\strona\kolejna\index.aspx, a np ./(folder_glowny_aplikacji)index.aspx (i kolejne podstrony np. /(folder_glowny_aplikacji)/(podfolder)default.aspx. Jak musiałby (lub co należałoby zrobić) wyglądać kod lub funkcja, która po kliknięciu w komórkę gridview mogła przekierować do podstrony.

Taki ZONK... chodziło mi o ścieżkę WZGLĘDNĄ, a nie bezwzględną ;)

0

Jeżeli chodzi o ścieżkę relatywna, to generalnie jest kilka sposobów operujący na różnych założeniach typu w jaki sposób / skąd odpalasz swoją aplikacje

example 1: 
var path = Path.Combine(@".\", "summer_2023");

example 2:
var folder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
var path = Path.Combine(folder, "summer_2023");

a w ogóle musi to być przez plik, a nie np. url? localhost:2344/stronka

0

@WeiXiao:

Ale Ty mądry jesteś :)

No właśnie URL byłby najłatwiejszy, ale nie. To ma działać jak a href w html'u. Przypisanie localhost:2344/stronka nie będzie działać np w IIS.

Jest w ogóle możliwość by wskazanie komórki w GridView przekierowywało do podstrony? (Każda komórka z kolumny to rekord sczytany z TextBox (i wprowadzony do bd access), który jednocześnie tworzy w katalogu głównym aplikacji katalog, którego nazwa tez wynika z wartości w TextBox (tam umieszcza odpowiednie pliki .aspx). No i z tego powodu chciałbym aby każdy rekord w GridView wskazywał na przynależną do siebie podstronę.

Da się tak?

1

No właśnie URL byłby najłatwiejszy, ale nie. To ma działać jak a href w html'u. Przypisanie localhost:2344/stronka nie będzie działać np w IIS.

Ja za nic nie mogę zrozumieć co tu chcesz uzyskać :D Przecież a href właśnie działa po URLach. Jak nie będzie działać w IIS? Możesz pokazać jakie ścieżki masz, jakie ścieżki chcesz uzyskać? Cały czas mówimy o URL-ach, a nie ścieżkach fizycznych typu D:\wwwroot, prawda?

O ile jeszcze pamiętam WebForms to tam się używało "~" i automatycznie było mapowane na bezwzględny folder aplikacji. Spójrz jeszcze na to: https://weblogs.asp.net/fmarguerie/avoiding-problems-with-relative-and-absolute-urls-in-asp-net, w sczególności na Request.ApplicationPath.

0

@Ktos:

"A href" może też wskazywać na ścieżkę relatywną (o którą mi chodzi) typu /(podfolder)/index.aspx. Przypisanie na stałe adresu localhost:2344/stronka (który jest adresem, nadawanym przez VS) nie będzie działać na IIS, a przynajmniej nie działa u mnie (działa - 127.0.0.1 != localhost - nie działa).

To tak jakbyś miał program zawierający baze danych. Mógłbyś go przenosić z jednej lokalizacji do innej i uruchamiałbyś go zewsząd. Wskazanie wtedy lokalizacji bezwzględnej do bazy danych lub podstron spowodowałoby unieruchomienie aplikacji.

0

Rozumiem, chyba :) Spójrz na HttpRequest.ApplicationPath, bo chyba zrobi ci to, co chcesz - jak uruchamiasz localhost:2344/stronka to zwróci "stronka", a jak uruchomisz "127.0.0.1/WebSite1" to zwróci "WebSite1".

1 użytkowników online, w tym zalogowanych: 0, gości: 1