Pytanie zadane w tytule tego posta, to drugie z trudniejszych pytań jakie pojawiło się podczas mojej sesji o plikach na portalu VirtualStudy.
Przeszukałem trochę sieć i okazało się, że folder można w dość prosty sposób udostępnić za pomocą WMI – Windows management Instrumentation – które w .NET reprezentowane jest przez przestrzeń nazw System.Management.
Aby udostępnić folder wystarczy przekazać odpowiednie parametry do klasy Win32_Share i wywołać metodę Create.
Co tutaj się dzieje? Na początku pobieramy klasę Win32_Share, a następnie tworzymy obiekt reprezentujący parametry, które będę przekazywane do polecenia Create. Wypełniamy je odpowiednimi danymi (nie są to wszystkie parametry, które możemy przekazać/ustawić – pełna lista tu). Następnie wołamy tę metodę przekazując obiekt parametrów. Na koniec sprawdzamy czy operacja się udała (zwróciła 0; pełna lista błędów w linku poprzednim). Jeśli wszystko się powiodło, nasz folder zostanie udostępniony pod nazwą, którą przekazaliśmy w parametrze shareName. Aby taki udostępniony folder usunąć wystarczy wykonać polecenie Delete, na konkretnym udostępnionym folderze.
Wyszukujemy nasz udostępniony folder na podstawie nazwy pod jaką jest udostępniony i wywołujemy na nim metodę Delete. Proste.
Możemy dodatkowo umieścić wywołanie takich metod jako Extension Method na klasie DirectoryInfo.
Użycie tego wszystkiego jest jeszcze prostsze.
I gotowe. Miłego kodowania.
Founder of Octal Solutions a .NET software house.
Passionate dev, blogger, occasionally speaker, one of the leaders of Wroc.NET user group. Microsoft MVP. Podcaster – Ostrapila.pl