Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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 ?

Frage Entwicklung C und C++

Mitglied: EinTyp.

EinTyp. (Level 1) - Jetzt verbinden

05.09.2011, aktualisiert 13:16 Uhr, 4889 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
Suche passender Treiber (12)

Frage von stolli zum Thema Windows Server ...

Peripheriegeräte
Wlan stört Funkmaus (11)

Frage von Falaffel zum Thema Peripheriegeräte ...

Peripheriegeräte
gelöst USB Festplatte verliert Laufwerksbuchstabe (9)

Frage von cese4321 zum Thema Peripheriegeräte ...