Dosya sisteminde hangi kullanıcının C# kodundan silinen dosyayı bilmem gerekiyor. Tek bir fikir denetim kullanmaktır, ancak çok yavaş görünüyor ...Dosyayı silen kullanıcıyı nasıl alabilirim?
cevap
Dosya sistemindeki silmeleri yakalamak için FileSystemWatcher.Deleted
olayını kullanabilirsiniz.
Uygulamaya bağlı olarak, bu noktada hangi kullanıcının bu olayın gerçekleşmesine neden olabileceğini de öğrenebilirsiniz (bu, FileSystemEventArgs
'un bir parçası değildir).
spam olacaktır. Ben izleyici kullanıyorum, ancak kullanıcı adı bu şekilde almaya çalıştığınızda: System.Security.AccessControl.FileSecurity sec = new FileSecurity (Path, System.Security.AccessControl.AccessControlSections.Owner); return sec.GetOwner (typeof (System.Security.Principal.NTAccount)) Değeri;, kullanıcı belirleyemediği için bir istisna atar – user295518
@ user: WindowsIdentity.GetCurrent() 'ı deneyin.' Name 'http://msdn.microsoft.com/en-us/library/system.security.principal.windowsidentity. aspx –
Bu, dosya sisteminden alınabilir mi bilmiyorum, ancak olası bir yolu, Silinmiş bir olayı tetiklemek için av FileSystemWatcher nesnesini kullanmaktır. Dezavantajı gözlemci uygulaması her zaman çalışan olması gerekir. Bir tersi, eğer uygunsa, sadece belirli bir klasörü izleyebilirsiniz.
DosyaSystemWatcher dosya silinen kullanıcı hakkında bilgi vermez gibi görünüyor ... – user295518
Hayır, ama belki de bu dosya aracılığıyla erişilebilir olabilir. Dosyayı değiştiren kullanıcıyı sahip olmak zorunda değilsiniz. Ama yine de, dosya muhtemelen daha sonra silinmiştir. Bu yüzden tahmin ettiğim istisnayı al. –
Belki de bu kaynak koddan silinmiş dosyanın dosya bilgilerine nasıl erişileceğini anlayabilirsiniz? http://ntfsundelete.com/downloads/ –
- 1. Geçerli kullanıcıyı Liferay'de nasıl alabilirim?
- 2. Dosyayı niyetle geçirme, nasıl geri alabilirim
- 3. Geçici bir dosyayı nasıl açabilirim ve dosya adını nasıl alabilirim?
- 4. Emacs lisp: En yeni dosyayı bir dizinde nasıl alabilirim?
- 5. Silinen kayıtların sayısını nasıl alabilirim?
- 6. Geçerli kullanıcıyı Passport.js
- 7. Kullanıcıyı nasıl değiştirebilirim? (Cmd, mariadb)
- 8. Django'da bir kullanıcıyı nasıl programlayabilirim?
- 9. Bir kullanıcıyı bir dosyayı kaydetmek için bir konum seçmesini nasıl isteyebilirim?
- 10. Geçerli kullanıcıyı Görünümden görüntüle
- 11. Bir sütun önce bir sütun silen bir sql sorgu çalıştırın
- 12. Kullanıcı adını Makefile'de nasıl alabilirim?
- 13. Kumaşta kullanıcıyı değiştirme
- 14. Filezilla istemcisindeki kullanıcıyı değiştirin
- 15. Postgres. Bir veritabanını ve kullanıcıyı nasıl oluşturabilirim?
- 16. Express'te, kullanıcıyı harici bir URL'ye nasıl yönlendiririm?
- 17. google analizleri ile doğrudan kullanıcıyı nasıl geçebilir
- 18. REST web hizmetinde kullanıcıyı nasıl kimlik doğrulamalıyım?
- 19. Her kullanıcıyı Firebase'deki verilerine nasıl bağlarım?
- 20. Kullanıcıyı, düzenlemeden önce SVN'de kilitlemeyi zorla
- 21. dosyayı
- 22. Android'de dosya yolunu nasıl alabilirim?
- 23. facebook fotoğraflarını test kullanıcılarından nasıl geri alabilirim?
- 24. Kullanıcıyı Android'e App Store'a yönlendirin
- 25. web url'sini nasıl alabilirim
- 26. MKAnnotationView coords nasıl alabilirim?
- 27. Uzantımın kimliğimi nasıl alabilirim?
- 28. Monitör bilgilerini nasıl alabilirim?
- 29. Önceki rotamı nasıl alabilirim?
- 30. phoenix.gen.html'yi nasıl geri alabilirim?
Bahsettiğiniz "denetim" nedir? – BlueMonkMN
@BlueMonkMN: Bu olabilir: NTFS erişim denetimi - http://support.microsoft.com/kb/310399; Bu en basit seçenek gibi görünüyor - sonuçta, bu, kullanıcı alanından ziyade çekirdeğe daha yakın çalışır, bu yüzden tüm dosya erişim olaylarını yakalamalıdır (düşük seviyeli disk erişimi hakkında emin olmamakla birlikte, muhtemelen burada gerekli değildir). Bununla birlikte ince ayar yapmaktan başka bir tecrübem yok. – Piskvor
Denetim kullanmak istemiyorum, çünkü çok fazla dosyam var ve gerçekten de sistem günlüğüne – user295518