Dosya boyutunda değişiklikleri izleyen bir program oluşturmalıyım. Ben zaten basit bir windows hizmeti ve dosya sistemi gözlemcisi yaptım, bu yüzden şimdi tanıdık bir kavram. Ayrıca, dosya sistemlerini (form düğmesinde yapmış) kontrol eden ancak dosya sistemimdeki uygulanmayan bir kod da yaptım. Dosya boyutunu izleyen bir filewatcher olan bir windows servisi nasıl oluşturabilirim? Windows hizmetinin içine bir dosya sistemi saati koymak ve izleyiciyi OnStart yöntemi ile çağırmak zorunda mıyım?Windows Service için C/FileSystemWatcher içinde C#
cevap
Bir Windows hizmeti veriyorsanız, program aracılığıyla bunu yapmak isteyeceksiniz. Genellikle formları hizmetlerimden uzak tutar ve iletişim kurmaları için ayrı bir arayüz oluşturur. Şimdi FileSystemWatcher sadece boyut için izlemek için bir olay yok, bu yüzden var olan dosyalarda değişiklik kontrol etmek için FileSystemWatcher.Changed ile bağlanan bir yöntem yapmak isteyeceksiniz. OnStart yönteminizdeki kontrolü bildirin ve başlatın ve olayları da bir araya getirin. OnStop yönteminizde herhangi bir temizleme kodu yapın. Bu gibi görünmelidir:
Ayrıcaprotected override void OnStart(string[] args)
{
FileSystemWatcher Watcher = new FileSystemWatcher("PATH HERE");
Watcher.EnableRaisingEvents = true;
Watcher.Changed += new FileSystemEventHandler(Watcher_Changed);
}
// This event is raised when a file is changed
private void Watcher_Changed(object sender, FileSystemEventArgs e)
{
// your code here
}
dikkat FileSystemWatcher tek bir dosya için birden fazla etkinlik ateşlenmesine, desen etrafında çalışmak için lütfen saati ayıklama ediyoruz böylece zaman.
Sadece
EnableRaisingEvents = true;
Ardından olay işlemek ayarlayarak OnStart stilini FileSystemWatcher nesnesini etkinleştirebilirsiniz. Bu yapmalı.
varsayılan değeri – Peru
olabilir. [MSDN] (http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.enableraisingevents.aspx) - "bileşen etkinse true, aksi halde, false. Varsayılan değer yanlıştır. Visual Studio 2005'te bir tasarımcının bileşenini kullanıyor, varsayılan doğru. " –
Eğer windows hizmetinde bu temsilci on_start
sahip bu yazıyı Ayrıca http://www.codeproject.com/Articles/18521/How-to-implement-a-simple-filewatcher-Windows-serv
okumak için
myWatcher.Changed += new FileSystemHandler(FSWatcherTest_Changed);
private void FSWatcherTest_Changed(object sender,
System.IO.FileSystemEventArgs e)
{
//code here for newly changed file or directory
}
Ve böylece
üzerinde sana öneriyoruz gibi nelerin değiştiğini işlemek için bir temsilci oluşturabilir- 1. C# içinde Windows Forms için sihirbazlar oluşturma #
- 2. windows service startup zaman aşımı
- 3. Windows Service ağ paylaşımına erişemiyor
- 4. Program aracılığıyla Windows Service yükleme
- 5. C# - LocalSystem altında çalışan Windows Service, Visual Studio kurulum projesi
- 6. Kendi geliştirdiğimiz bir Windows Service yükleme
- 7. Windows Service'den başlatıldığında Erişim reddedildi Service from Service
- 8. Neden Windows Service, System.Timers.Timer veya System.Windows.Forms.Timer
- 9. Windows Azure Service Bus ile Ölçeklendirme SignalR
- 10. Windows XP Service (Windows XP) nasıl yüklenir ve başlatılır? WX
- 11. İşleri dinamik olarak eklemek ve kaldırmak için Quartz.NET Windows Service
- 12. Service Bus 2.1 Windows Server için - EndReceive Yönteminde TimeOutException
- 13. WCF Windows Service hizmeti olarak hizmet (Windows 7)
- 14. C# içinde dataGridView sütunlarını sırala? (Windows Form)
- 15. C# içinde UDP C# Windows üzerinde çalışır ama Linux değil
- 16. C++ için Torrent Kitaplığı, Windows
- 17. ScheduledExecutorService Service içinde yalnızca bir kez çalıştırın
- 18. @Service
- 19. Undecorated JFrames içinde Windows-Sol ve Windows-Sağ için Destek
- 20. Windows C
- 21. C# ve Exchange Web Service - Hata
- 22. Windows, C++
- 23. Windows hizmeti için tasarım deseni - C#
- 24. MEF + WCF Service Host?
- 25. Web Service proxy sınıfı arabirimi uygulamak için
- 26. Windows Service olarak adım adım bir WCF'ye ihtiyacınız var
- 27. WCF Windows Service ile VB6'da iletişim kurun?
- 28. SSL Service Stack
- 29. UWP Windows 10 C# İÇİNDE Sınır yuvarlak düğme oluşturur
- 30. InstallShield Visual Studio yüklenmiyor Service
Bu yüzden araç penceresinden servis pencerelerine herhangi bir öğe eklememeliyim. En kısa zamanda deneyeceğim .. Bu gerçekten yararlı oldu –
Ben ondan uzak kalmak istiyorum. Bir hizmeti çalıştırdığınızda, Windows form bütünleştirmesini doğal olarak devre dışı bırakır ve yüklemeden sonra hizmeti yapılandırmak için yapılandırmanız gerekir. Eğer sadece gözlerin gördüğü bir şeyse, o zaman muhtemelen büyük bir anlaşma değildir, ama bu gelişim tarzından kaçınmak iyi bir alışkanlıktır (güvenlik nedenleriyle). –
GÜNCELLEME: Windows Vista ve Win 7'de, masaüstü etkileşimine izin verme seçeneği tamamen kaldırıldı. Bunu yükleme zamanında fark etmedi. –