Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst FileSystemWatcher Pfad ändern ?

Mitglied: EinTyp.

EinTyp. (Level 1) - Jetzt verbinden

05.09.2011, aktualisiert 13:16 Uhr, 5151 Aufrufe, 18 Kommentare

FileSystemWatcher Pfad ändern ?

Hallo Community,

In meinem Programm soll ein "fileSystemWatcher" einen Ordner überwachen. Ich möchte aber in meinem Programm den Pfad des "flieSystemWatchers" ändern, also den Ordner den er überwachen soll. Das sollte zb. durch einen Folderbrowser oder eine Textbox geschehen. Das Programm wird in Visual C# geschrieben. Ich hab schon viele Möglichkeiten versucht aber keine hat funktioniert, und ich hoffe ihr könnt mir helfen.
Zum Code möchte ich noch sagen dass er noch nicht ganz ausgearbeitet ist weil ich an dieser Stelle hänge.

Hier der Code:
01.
using System;
02.
using System.Collections.Generic;
03.
using System.ComponentModel;
04.
using System.Data;
05.
using System.Drawing;
06.
using System.Linq;
07.
using System.Text;
08.
using System.Windows.Forms;
09.
using System.IO;
10.

11.
namespace WindowsFormsApplication1
12.
{
13.
    public partial class Form1 : Form
14.
    {
15.
        public Form1()
16.
        {
17.
            InitializeComponent();
18.
        }
19.
        
20.
        private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e)
21.
        {
22.
            label3.Text = "Aktion entdeckt";
23.
            fileSystemWatcher1.Path = folderBrowserDialog1.SelectedPath; 
24.
        }
25.

26.
        private void radioButton1_CheckedChanged(object sender, EventArgs e)
27.
        {
28.
            label1.Text = "Überwachung Aktiv";
29.
            label3.Text = "Keine Aktion";
30.
        }
31.

32.
        private void radioButton2_CheckedChanged(object sender, EventArgs e)
33.
        {
34.
            label1.Text = "Überwachung Deaktiviert";
35.
            label3.Text = "Unbekannt";
36.
            
37.

38.
        }
39.

40.
        private void button1_Click(object sender, EventArgs e)
41.
        {
42.
            new FolderBrowserDialog().ShowDialog();
43.
            label8.Text = folderBrowserDialog1.SelectedPath;
44.
        }
45.
        
46.
        
47.
    }
48.
}
lg
EinTyp.
Mitglied: wiesi200
05.09.2011 um 13:05 Uhr
Hallo,

also zuerst würd ich das ganze mal als Code Formatieren.

zum anderen

01.
fileSystemWatcher1.Path = folderBrowserDialog1.SelectedPath; 
würd ich eher auf label8.Text verweisen.

Und welchen Fehler macht er denn?
Bitte warten ..
Mitglied: EinTyp.
05.09.2011 um 13:20 Uhr
Hallo,

der Fehler ist, dass ich den Pfad einmalig festlegen kann ihn aber dann nicht mehr ändern kann also der Pfad aus dem Folderbrowser wird nicht übernommen.

lg EinTyp.
Bitte warten ..
Mitglied: 99045
05.09.2011 um 14:08 Uhr
Hi,

schreib den Pfad in die Registry und lies ihn mit deinem "FileSystemWatcher" von dort ein.

Gruß
Bitte warten ..
Mitglied: wiesi200
05.09.2011 um 14:12 Uhr
Ok,

noch was

01.
private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e)
02.
fileSystemWatcher1.Path = folderBrowserDialog1.SelectedPath; 
gehört da meiner Meinung nach nicht mal hin.
das das Event nur ausgeführt wird wenn der Watcher was findet.

ich würd den Pfad in Settings schreiben und dann im Form_Load Event zuweisen.
Bitte warten ..
Mitglied: EinTyp.
05.09.2011 um 14:37 Uhr
Erstmal danke für die Antworten aber das ist leider nicht das was ich brauche, ich will den Pfad in meinem Programm durch eine Textbox etc ändern und das bekomm ich nicht hin. Wo ich einen Pfad dafür angeben muss weis ich schon. Falls ich was falsch verstanden habe sagts mir einfach, ich bin noch ein wenig unsicher.
Bitte warten ..
Mitglied: wiesi200
05.09.2011 um 14:54 Uhr
Das mit dem ind Settings oder Registry schreiben bedeutet dann auch das er sich die eingaben merkt beim Programm Ende.

Du solltest dann noch hergehen und beim Beim Event für Textänderung der Textbox und sagen:

01.
fileSystemWatcher1.Path = textbox?.text;
Bitte warten ..
Mitglied: EinTyp.
05.09.2011 um 15:39 Uhr
Hab eure Tipps umgesetzt und es hat nichts gebracht, ich kann den Pfad einmalig in den Einstellungen festlegen, ihn dann aber nicht durch die Textbox ändern. Hab es auch schon mit nem Bestätigen Button versucht, und es hat nichts gebracht.
Bitte warten ..
Mitglied: wiesi200
05.09.2011 um 15:43 Uhr
Wie sieht denn den Code jetzt aus?
Bitte warten ..
Mitglied: 99045
05.09.2011 um 15:49 Uhr
So schwierig kann das doch nicht sein. Du überprüfst mit deinem "SystemWatcher" per Timer, ob ein bestimmter Registry-Key gesetzt ist oder sich geändert hat und verwendest den.
Mit deinem "Browser" mit der tollen Textbox setzt du den Reg-Key mit dem gewünschten Pfad.
Bitte warten ..
Mitglied: wiesi200
05.09.2011 um 15:57 Uhr
Zitat von 99045:
So schwierig kann das doch nicht sein. Du überprüfst mit deinem "SystemWatcher" per Timer, ob ein bestimmter
Registry-Key gesetzt ist oder sich geändert hat und verwendest den.
Mit deinem "Browser" mit der tollen Textbox setzt du den Reg-Key mit dem gewünschten Pfad.

Sorry, aber das hilft ihm doch auch nicht. Ob er jetzt den Wert auch einer Textbox oder der Registry ausliest ist doch sowas von egal. Und das mit dem Timer halte ich auch für absolut unnötig, für soetwas gibt's doch genug andere Events
Bitte warten ..
Mitglied: 99045
05.09.2011 um 16:02 Uhr
Was ich für nötig halte, überlasse bitte mir und welche Tipps ich gebe, bitte auch..

PS. Zitierst du in einer Briefantwort auch den gesamten Text, des Schreibers in deiner Antwort?
Bitte warten ..
Mitglied: EinTyp.
05.09.2011 um 16:14 Uhr
Zitat von 99045:
So schwierig kann das doch nicht sein.

Das dachte ich mir auch, jedenfalls funktionieren eure Tipps nicht, egal ob mit oder ohne einer tollen Textbox.
Er übernimmt den Dateipfad einfach nicht, egal wo oder wie ich ihn angebe.
Bitte warten ..
Mitglied: wiesi200
05.09.2011 um 16:44 Uhr
Zitat von 99045:
Was ich für nötig halte, überlasse bitte mir und welche Tipps ich gebe, bitte auch..
Überlasse ich dir auch, wollt dich nur drauf aufmerksam machen das es ein Schmarrn ist der auch nicht's bringt.

PS. Zitierst du in einer Briefantwort auch den gesamten Text, des Schreibers in deiner Antwort?
Wenn ich zu faul bin den Text zu löschen, JA.
Bitte warten ..
Mitglied: 99045
05.09.2011 um 16:47 Uhr
Zitat von wiesi200:
dass es ein Schmarrn ist der auch nicht's bringt.
Allen ist das Denken erlaubt. Vielen bleibt es erspart. (Curt Goetz)

EOD
Bitte warten ..
Mitglied: xNx443
05.09.2011 um 17:24 Uhr
Ich will mich ungern einmischen aber langsam artet es in kindisches Verhalten aus, wollt ihr nicht langsam zum Thema zurückkehren?
Bitte warten ..
Mitglied: wiesi200
05.09.2011 um 18:21 Uhr
Netter Spruch,

leb doch einfach mit der Kritik
Bitte warten ..
Mitglied: EinTyp.
05.09.2011 um 19:34 Uhr
Da muss ich xNx443 recht geben, das hilft nun wirklich keinem.
Bitte warten ..
Mitglied: Jenna86
04.11.2011 um 08:37 Uhr
Hi,

ich glaube das Problem ist, dass du den Path vom Filewatcher im Changed event änderst.
Wo du bei dem Button schon das Click-event abfängst ist es sicherlich sinnvoll dort die Änderung nach der Auswahl des Ordners zu machen.

Ich habe mal einen funktionierenden Prototypen entwickelt, da ich Flagfiles zum Eventauslösen benutzt habe. Falls du möchtest kann ich dir dazu mehr Infos zukommen lassen.

Aber vorerst tippe ich darauf, dass du den Path des Filewatchers nicht im richtigen Kontext setzt.

Auszüge aus meiner Lösung:
01.
        private void button_openPath_Click(object sender, EventArgs e)
02.
        {
03.
            String selectedPath = string.Empty;
04.
            String selectedFile = string.Empty;
05.

06.
            if (radioButton_folder.Checked)
07.
            {
08.
                folderBrowserDialog1.ShowDialog();
09.
                selectedPath = folderBrowserDialog1.SelectedPath;
10.
            }
11.
            else
12.
            {
13.
                openFileDialog1.ShowDialog();
14.
                selectedPath = Path.GetDirectoryName(openFileDialog1.FileName);
15.
                selectedFile = Path.GetFileName(openFileDialog1.FileName);
16.
            }
17.

18.
            if (!Directory.Exists(selectedPath))
19.
            {
20.
                selectedPath = "C:\\";
21.
            }
22.

23.
            fileSystemWatcher.IncludeSubdirectories = true;
24.
            fileSystemWatcher.Path = selectedPath;
25.
            if (!selectedFile.Equals(string.Empty))
26.
            {
27.
                fileSystemWatcher.Filter = selectedFile;
28.
            }
29.
            else
30.
            {
31.
                fileSystemWatcher.Filter = string.Empty;
32.
            }
33.

34.
            textBox_path.Text = selectedPath + "\\" + selectedFile;
35.
            fileSystemWatcher.EnableRaisingEvents = true;
36.
        }
Ich öffne je nachdem, ob ich einen ganzen Ordner oder nur eine Datei "beobachten" will ein anderes Auswahlfenster. Die Auswahl wird über die RadioButtons getroffen.

Meine Load-Methode der Form sieht übrigends so aus (erst nach Auswahl eines Ordners/einer Datei wird der Filewatcher eingeschaltet!):

01.
        private void Form1_Load(object sender, EventArgs e)
02.
        {
03.
            openFileDialog1.CheckFileExists = false;
04.
            openFileDialog1.CheckPathExists = true;
05.
            openFileDialog1.InitialDirectory = _INIT_DIRECTORY;
06.
            folderBrowserDialog1.ShowNewFolderButton = true;
07.
            folderBrowserDialog1.SelectedPath = _INIT_DIRECTORY;
08.

09.
            fileSystemWatcher.Path = "C:\\";
10.
            fileSystemWatcher.NotifyFilter = //NotifyFilters.Attributes |
11.
                //NotifyFilters.CreationTime |
12.
                                                NotifyFilters.DirectoryName |
13.
                                                NotifyFilters.FileName |
14.
                //NotifyFilters.LastAccess |
15.
                                                NotifyFilters.LastWrite //|
16.
                //NotifyFilters.Security |
17.
                //NotifyFilters.Size
18.
            ;
19.

20.
            fileSystemWatcher.EnableRaisingEvents = false;
21.
        }
Ich hoffe, dass dir das auch zwei Monate nach Erstellen deines Posts noch irgendwie helfen kann

Grüße
"Jenna"
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell Pfad überprüfen
gelöst Frage von H41mSh1C0RBatch & Shell11 Kommentare

Hi @ PS Profis, Irgendwie seh ich den Wald vor lauter Bäumen nicht. (oder es ist einfach Zeit für ...

Windows 7
UNC Pfad Darstellung
Frage von RamboworldWindows 77 Kommentare

Hallo Zusammen, Client Win7 Enterprise : Server 2008 R2 Netzlaufwerke werden per GPO verbunden. Die Anzeige der Netzlaufwerke erfolgt ...

Batch & Shell
Leerzeichen im Pfad
Frage von JallioBatch & Shell4 Kommentare

Hallo erneut, ich werde hier echt noch zum Stammkunden Wenn ich den Befehl $body in der WindowsPowerShell ISE ausführe, ...

Windows Server
Pfad für PhotoScreensaver
gelöst Frage von sardldbWindows Server2 Kommentare

Hallo Zusammen Ich möchte den Pfad für die Bilder der Diashow im Bildschirmschohner per gpo änder. Ich habe bereits ...

Neue Wissensbeiträge
Humor (lol)
Und wie seid Ihr gegen Cyberattacken gewappnet?
Information von DerWoWusste vor 14 StundenHumor (lol)4 Kommentare

aber wo ist der Hammer? :-)

Sicherheit
Ein weiterer Microsoft-Stirnklatscher
Information von DerWoWusste vor 1 TagSicherheit7 Kommentare

Habe gerade einen Artikel zu einem Sicherheitsproblem gefunden, welches mir zu seiner Zeit (gepatcht 2015) wohl durchgerutscht ist. Es ...

Windows 10
Upgradepfade Windows 10 LTSC
Erfahrungsbericht von Datenreise vor 1 TagWindows 10

Nur eine kurze Info, für diejenigen, die es interessiert, da es hierzu im Netz aus nachvollziehbaren Gründen nicht allzu ...

Administrator.de Feedback
Wartungsarbeiten heute Nacht (Update)
Information von Frank vor 1 TagAdministrator.de Feedback10 Kommentare

Hallo User, durch Umbauarbeiten in unserem Rechenzentrum (am Backbone) kann es heute Nacht (14-15.01.2019) zu kurzen Ausfällen unserer Seite ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 - kein Boot mehr nach Domänenaustritt
gelöst Frage von Ghost108Windows 1025 Kommentare

Hallo zusammen, habe hier eine Windows 10 Maschine, die ich gerne aus der Domäne austreten lassen möchte. Nach Austritt ...

Windows 10
Windows 10 1803 - nicht identifiziertes Netzwerk - kein Login an Domäne möglich
Frage von Tomy389Windows 1021 Kommentare

Hallo Zusammen, ich hoffe zu dem Thema gibt es nicht schon einen Thread aber ich sollte eigentlich schon alles ...

Exchange Server
Microsoft Exchange Ser ver 2016 CU 8 auf den neuesten Stand bringen
gelöst Frage von Hendrik2586Exchange Server20 Kommentare

Hallo an euch alle. :) Kurze Frage. Ich habe hier einen Exchange Server wie o.g. Problem ist das wir ...

Microsoft
SFirm 4.0 auf Terminalserver startet für jeden angemeldeten Benutzer diverse Dienste
Frage von Frank84Microsoft17 Kommentare

Hallo zusammen, wir verwenden Sfirm 4.0 auf einem Terminalserver (der SQL Server ist auf einem separaten Server), das Problem ...