C# Tam tarama yaparken C:\Documents ve Settings yoluna erişim engellendi hatası

  • Taranırken, taranamayan dosyaları kullanıcıya gösterin.
  • Sistem linklerini taramaya dahil etmeyin. Yönlendirdiği yer elbet diski tararken karşınıza çıkar.
Windows'ta link dosyaları normal birer dosya. Uzantılarıyla algılanılıyor link olup olmadıkları. Dolayısıyla herhangi bir şey dosya uzantısını .lnk yapıp yönlendirme yapmadan saklanabilir. Windows algılamaz.
1690800203940.png

1690800249286.png
 
Contains metodunu bilmiyorsun. :D Teoriyle alakası yok. Agresif agresif çıkışıyorsun sağa sola. Bu şekilde soru sorulmaz.
Çağırdığın task'in parametresini işlemden geçirmek gelmiyor aklına değil mi? Eğer filePath'te .lnk varsa atlamak gelmiyor aklına. Yada tarama işlemini sub proccesse alıp o sub proccessi açarken kullanıcıdan yönetici ayrıcalıkları istemek... Muhtemelen kod sana ait değil çünkü. Contains metodunu bilmemeni normal karşılayabilirim C# bilmiyorsan. Ama bu kadar kod yazıp C#'ta nasıl string içinde substring arayacağını araştıramamak mantıklı değil. Yada bu tarz basit bir mantığı düşünememek.
 
500 satır kod yaz, sonra açılamayan dosya yolunun yazdığı satırı silmeyi becereme. "Documents and settigs" dizinini adresleyen satırı (sonlarara yakın bir yerde) sileceksin ve program orayı atlayacak.

Asıl sorun bir yetki sorunu. Programı yetkili modunda çalıştırırsan muhtemelen hata bildirimi gelmeyecek. Bir dene bakalım.
 
E kod yazacak var mı?

500 satır kod yaz, sonra açılamayan dosya yolunun yazdığı satırı silmeyi becereme. "Documents and settigs" dizinini adresleyen satırı (sonlarara yakın bir yerde) sileceksin ve program orayı atlayacak.

Asıl sorun bir yetki sorunu. Programı yetkili modunda çalıştırırsan muhtemelen hata bildirimi gelmeyecek. Bir dene bakalım.
Öyle yaptım zaten. İzin verilmediyi izin verildi yapmaya çalıştım (Eski yöntem.) olmadı.

1770 hatta. İyice rezil oldum.
 
Son düzenleme:
E kod yazacak var mı?
Yolu verdim işte. Daha neden kod yazılmasını bekliyorsun.

if(filePath.Contains(".lnk") { return; } yazacaksın. Bu basit olan yol. Bir de şu button clicklerin yapacakları şeyi doğrudan fonksiyona vermeyin. 50 şeyi tek bir fonksiyonda yapmayın.

Diğer yol button'a tıklandığında tarama işlemini yapacak bir exe'yi çalıştırmak. O exe'nin çalıştırma kurallarına admin ayrıcalıkları eklersin. @300319 'in bunun için rehberi de var. Admin yetkilerini aldıktan sonra okuma ve yazma yapması gerekiyor. Sistem dosyalarına okuma yazma yapamaz Admin'de olsa. Ama sahipliği sistem olan şeylerle de uğraşma zaten. Sahiplik kontrolünü araştır.
 

Technopat Haberler

Geri
Yukarı