MC, 19:42 niedziela, 10.03.2013 r.
.NET - DirectoryInfo i relatywna ścieżka (użycie Server.MapPath)
Notatka obrazująca możliwość używania relatywnych ścieżek odnoszących się do projektu w obiektach typu DirectoryInfo i im podobnych.
W czym problem?
Ostatnio stanąłem przed koniecznością odniesienia się do zawartości pewnego katalogu w projekcie z pozycji kodu aplikacji (a tak dokładniej, pobrać listę plików). Taką możliwość oczywiście daje obiekt DirectoryInfo, który jeśli wskażemy mu odpowiednią ścieżkę. I tu się zrodził mały problem. Ponieważ DirectoryInfo, jeśli podać mu ścieżkę relatywną, startuje nie od katalogu, w którym przechowywany jest projekt, tylko od tego, w którym fizycznie znajduje się działająca aplikacja. Czyli potrzebujemy pośrednika...
Jak odnieść się relatywnie do projektu w DirectoryInfo?
Krótkie poszukiwania wykazały, że najwygodniej będzie użyć metody MapPath(), która relatywną ścieżkę odpowiednio nam przekształci na absolutną, gotową do użycia właśnie w obiektach pokroju DirectoryInfo. Zerknijmy więc jak może wyglądać najprostsza implementacja:
string path = "~/KatalogWProjekcie";
DirectoryInfo directory = new DirectoryInfo(HttpContext.Current.Server.MapPath(path));
DirectoryInfo directory = new DirectoryInfo(HttpContext.Current.Server.MapPath(path));
I życie stało się prostsze, problem rozwiązany, chodźmy się napić ;)
Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!