C# Vergleich Datei Ordner

PhilippVP

Cadet 2nd Year
Registriert
Juni 2013
Beiträge
24
Hallo alle zusammen,

ich habe ein Problem und ich hoffe Ihr könnt mir helfen.

Ich will einen Odner Datei Vergleich durchführen lassen (klappt auch soweit (Code aus Internet)) aber ich verstehe Ihn nicht wirklich und ich möchte da auch noch was dazuschreiben.
Wenn der Wert true ist, dann will ich etwas mit FTP machen.
Wenn der Wert false ist, dann soll das falsche kopiert werden in ein anderes Verzeichnis.

Aber ja nachdem wie es einfacher zu händeln ist, soll er das falsche in ein anderes Verzeichnnis verschieben und das richtige dann per FTP hochladen.

Ich hoffe Ihr könnt mir da helfen.

Hier einmal mein bisheriger Code:

Code:
private void doMatch() 
        {
            System.IO.DirectoryInfo dInfo;
            System.IO.FileInfo fInfo;
            System.IO.StreamReader sReader;
            List<string> lstFiles;

            try
            {
                if (txtOrdnerPfad.Text.Length > 0 && txtOrdnerPfad.Text != _TxtFolderTextAtStartup && txtTextdateiPfad.Text.Length > 0 && txtTextdateiPfad.Text != _TxtTextFileAtStartup)
                {
                    dInfo = new System.IO.DirectoryInfo(txtOrdnerPfad.Text);
                    if (!dInfo.Exists)
                        throw new NullReferenceException("Ordner existiert nicht oder ist schreibgeschützt");

                    fInfo = new System.IO.FileInfo(txtTextdateiPfad.Text);
                    if (!fInfo.Exists)
                        throw new NullReferenceException("Datei existiert nicht oder ist durch die Benutzung eines anderen Benutzer schreibgeschützt");

                    fInfo = null;
                    sReader = new System.IO.StreamReader(txtTextdateiPfad.Text);
                    lstFiles = new List<string>();
                    do
                    {
                        lstFiles.Add(sReader.ReadLine());
                    }
                    while (!sReader.EndOfStream);

                    foreach (string strFileName in lstFiles)
                    {
                        txtProtocol.Text += strFileName + " Existiert? --> ";
                        txtProtocol.Text += (from dFiles in dInfo.GetFiles() where dFiles.Name == strFileName select dFiles).Count() > 0;
                        txtProtocol.Text += Environment.NewLine;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Fehler beim Vergleichen des Ordners und der Datei" + Environment.NewLine + ex.Message, "Error - FTP Bilder Vergleich mit Upload - Vergleich", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }  
        }


Danke schon einmal im Vorraus

MFG Philipp
Ergänzung ()

So steht es in meiner TextBox drin.

A900300.jpg Existiert? --> True
WW316100.jpg Existiert? --> True
WW316102.jpg Existiert? --> True
HW7010123.jpg Existiert? --> True
MS20000173.jpg Existiert? --> True
Neue Bitmap.bmp Existiert? --> False

Jetzt will ich die "Neue Bitmap.bmp" in ein anderes verzeichnis verscheiben weil ja der Wert False ausgegeben wird.
Hat da jemand eine Idee?
 
Datei verschieben geht mit dem Befehl File.Move(quelldateipfad, zieldateipfad).

Müste dann so irgendwie abgeändert werden:
Code:
                    foreach (string strFileName in lstFiles)
                    {
                        bool fileExists = (from dFiles in dInfo.GetFiles() where dFiles.Name == strFileName select dFiles).Count() > 0;
                        if (!fileExists) {
                                 String quelldateipfad = Path.Combine(txtOrdnerPfad.Text, strFileName);
                                 String zieldateipfad = Path.Combine("C:\wasweißichwohin", strFileName);
                                 File.Move(quelldateipfad, zieldateipfad);
                        }
                        txtProtocol.Text += strFileName + " Existiert? --> ";
                        txtProtocol.Text += fileExists;
                        txtProtocol.Text += Environment.NewLine;
                    }
 
Zuletzt bearbeitet: (Code hinzugefügt)
@leimer
Danke, das könnte funktionieren, muss es nur noch prüfen, aber danke erst mal für deine Lösung.

@asdfman:
Was meinst du jetzt damit? erklärst du mir das mal was das macht?
 
Es synchronisiert zwei oder mehr Verzeichnisse miteinander, die lokal oder auf entfernten Systemen vorliegen können. Für Details: bing
 
kannst du mir da mal eine beispiel Code irgendwie schicken was auf meins bezogen ist, das ich mir des verinnerlichen kann?
 
Zurück
Oben