var mongoYol = Directory.GetFiles("C:\\", "mongod.lock", SearchOption.AllDirectories).Where(s => !s.StartsWith("Windows"));
foreach (string dosya in mongoYol)
{
File.Delete(dosya);
}
bu kadar

şunu dener misin?
string[] dir = Directory.GetDirectories("C:\\");
dir = dir.Where(q => q.IndexOf("Windows") <= 0).ToArray();
foreach (string directory in dir)
{
string[] mongoYol = Directory.GetFiles(directory, "mongod.lock", SearchOption.AllDirectories);
foreach (string file in mongoYol)
{
File.Delete(file);
}
}
veya kendi kodunda StartsWith kısmında "Windows" yerine "C:\\Windows" yazarak da deneyebilirsin.
veya IndexOf("Windows" <= 0) olarak da değiştirip deneyebilirsin.


malesef aynı izin hatası \:


programını yöneticisi yetkisiyle başlat
stackoverflow.com
Ayrıca arama işlemi için fonksiyon yazıp thread olarak başlat.
stackoverflow.com


o zaman exception aldığın klasörleri not et, tek tek aramandan çıkar. bende liste şu halde : Windows, $Recycle.Bin, Documents and Settings, MSOCache, PerfLogs
ama yine de admin olarak başlatman daha iyi bir yol.


@kimlanbu <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
ayarını yapmıştım, ona rağmen böyle bir şeyle karşılaşıyorum \:
diğer thread olayını bi okumam lazım sanırım iyicene.


@inheritence aramadan nasıl çıkarıcam onu bulsam :)


dir = dir.Where(q => q.IndexOf("Windows") <= 0).ToArray();
dir = dir.Where(q => q.IndexOf("$Recycle.Bin") <= 0).ToArray();
dir = dir.Where(q => q.IndexOf("Documents and Settings") <= 0).ToArray();
gibi.


çözdüm, belki ilerki nesillere yardımı dokunur.
registry'den gittim, temiz oldu:
string mongoReg = (string)Registry.GetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MongoDB", "ImagePath", null);
string a = mongoReg.Split(' ')[4];
File.Delete(a + "\\mongod.lock");
