Paylaşımda Olan Dizinleri Bulmak ( C# + VB.NET )
Bilgisayarda paylaşımda olan klasörleri bulmamız gerektiğinde WMI sorgusu çalıştırmamız gerekir.
WMI (Windows Management Instrumentation) hakkında daha detaylı bilgiye MSDN üzerindeki bu kaynaktan ulaşabilirsiniz.
WMI sorgusu çalıştırmak için öncelikle System.Management.dll’i projemize referans göstermeliyiz.
System.Management.dll’i projeye referans gösterdikten sonra form üzerine bir Listbox, bir de Button ekleyip, butonun click event’ine aşağıdaki kodu yazıyoruz;
C# Code :
private void btnDizinleriListele_Click(object sender, EventArgs e)
{
//WMI sorgusu çalıştırıyoruz.
ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_Share");
//Win32_Share classı :
/*
class Win32_Share : CIM_LogicalElement
{
uint32 AccessMask;
boolean AllowMaximum;
string Caption;
string Description;
datetime InstallDate;
uint32 MaximumAllowed;
string Name;
string Path;
string Status;
uint32 Type;
};
*/
foreach (ManagementObject dizin in mos.Get())
lbDizinler.Items.Add(string.Format("Dizin : {0}\\{1} ({2})", dizin["Path"], dizin["Name"], dizin["Description"]));
}
VB.NET Code :
Private Sub btnDizinleriListele_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDizinleriListele.Click
'WMI sorgusu çalıştırıyoruz.
Dim mos As New ManagementObjectSearcher("SELECT * FROM Win32_Share")
'Win32_Share classı :
'class Win32_Share : CIM_LogicalElement
'{
' uint32 AccessMask;
' boolean AllowMaximum;
' string Caption;
' string Description;
' datetime InstallDate;
' uint32 MaximumAllowed;
' string Name;
' string Path;
' string Status;
' uint32 Type;
'};
For Each dizin As ManagementObject In mos.Get()
lbDizinler.Items.Add(String.Format("Dizin : {0}\\{1} ({2})", dizin("Path"), dizin("Name"), dizin("Description")))
Next
End Sub
ManagementObjectSearcher class’ının constructor’ına SELECT * FROM Win32_Share yazdığımıza dikkat edin.
Win32_Share class’ı hakkında daha detaylı bilgiye MSDN üzerinde yeralan bu kaynaktan ulaşabilirsiniz.
C# için kaynak kodlar : PaylasimdaOlanDizinler_C#.zip
VB.NET için kaynak kodlar : PaylasimdaOlanDizinler_VB.zip
İlgili diğer başlıklar:
- C# WMI Örnekler – 1
- FileStream sınıfına Kaydet() ExtensionMethod’u yazalım
- Sql Server CSV (Comma Seperated Value) çıktı üretme
- Dizide bir elemandan kaç adet olduğunu bulalım
- C# Klasörün Sadece-Okunabilir Olduğunu Döndüren Extension Method
- C# FolderBrowserDialog seçili dizini değiştirmek
- Dosya veya Dizin isimlendirirken kullanmamanız gereken karakterler
- Sql Server’da En Meşgul Veritabanını Bulmak
- VB.NET’te anahtar kelimeyi değişken ismi olarak kullanma
- Ayın ilk ve son gününü bulmak için Extension Method