Zum Inhalt springen

Vergleich Verzeichnis und Datei


PhilippVP

Empfohlene Beiträge

Hallo Leute,

ich habe ein Problem und zwar:

Ich soll mit meinem Programm eine Datei.txt einlesen und den Inhalt der .txt mit dem Inhalt eines Ordner vergleichen (liegen nur Bilder drin) und dann Ausgeben ob es identisch ist, wenn nicht sollen die Bilder (aus dem Ordner) was nicht in der .txt stehen gelöscht werden.

Könnt Ihr mir helfen ich stehe dan komplett auf dem Schlauch

Vielen Dank schon einmal im vorraus für eure Hilfe!

MFG PhilippVP

Link zu diesem Kommentar
Auf anderen Seiten teilen

Alles Links von Goulasz verweisen auf die MSDN. Dort gibt es genug Beispiele zu den entsprechenden Klassen. Auch wie man Dateien öffnet und ausliest findest Du da bzw. auch per Suchmaschine. Wie sieht den Dein bisheriger Code aus?

Ansonsten kann ich Dir anbieten, das Programm zu schreiben, wenn die finanziellen Angelegenheiten geklärt sind.

Bearbeitet von lbm1305
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hey PhilippVP!

Ich habe eigentlich alle Klassen verlinkt, die du zur Lösung deines Problems benötigst. Woran hapert es denn bzgl. der Umsetzung? Da du hier seit Ende Januar registriert bist, vermute ich mal, du hast schon etwas Erfahrung im Programmierbereich; und das geschilderte Problem ist eigentlich eher von trivialer Natur.

Poste doch mal deinen bisherigen Code oder deine Ansätze, dann sehen wir weiter.

Gruß, Goulasz

P.S: Du kannst deine Problemstellung btw nahezu im Wortlaut googlen und wirst passende Codebeispiele erhalten. Ein bisschen Eigeninitiative muss sein ;).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Leute,

ich bin jetzt mit meinem Code (siehe unten) so weit:

string datei;

string verzeichnis;

datei = txtDateiladen.Text;

verzeichnis = txtVerzeichnisladen.Text;

using (StreamReader sr = new StreamReader(datei))

{

string zeile;

while ((zeile = sr.ReadLine()) != null)

{

//MessageBox.Show(zeile);

}

}

string[] verzeichniseinlesen = Directory.GetFiles(verzeichnis);

foreach (string dir in verzeichniseinlesen)

{

MessageBox.Show(dir);

}

aber ich komme nicht weiter, kann mir auch mal jemand erklären wie das mit dem Inhalt vom Verzeichnis einlesen funktioniert, ich stehe da komplett auf dem Schlauch :(

string[] verzeichniseinlesen = Directory.GetFiles(verzeichnis);

foreach (string dir in verzeichniseinlesen)

{

MessageBox.Show(dir);

}

Wäre euch sehr dankbar für eure Hilfe!

MFG PhilippVP

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich gehe davon aus, dass die Verzeichnisse in der einzlesenden txt-Datei Zeilenweise aufgeführt sind.

ReadLine von StreamReader liest "zeilenweise". D.h. in Variable Zeile steht immer ein Pfad zu einem Verzeichnis.

Innerhalb des while - Statements müsstest Du jetzt die Aktion auf das Directory ausführen. Was auch funktioniert...Du speichert alles Pfade in einer Enumeration vom Typ string (IEnumerable<string>) und führst dann auf jedes Item der Enumeration deine Aktionen aus.


using (StreamReader sr = new StreamReader(datei))

{

string zeile;


while ((zeile = sr.ReadLine()) != null)

{

     if(Directory.Exists(zeile) {

         var files = Directory.GetFiles(zeile);


         foreach(var file in files) {

              // MacheEtwasMit(file);


             // Die Methode kann bspw. die Datei mit den Bildnamen öffnen und den Pfade 

             // Dateinamen vergleichen bzw. suchen.

         }

     }

}

}

Noch ein paar Hilfen:

http://msdn.microsoft.com/de-de/library/db5x7c0d.aspx

http://msdn.microsoft.com/de-de/library/4cyf24ss.aspx

http://msdn.microsoft.com/de-de/library/07wt70x2.aspx

Bearbeitet von lbm1305
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Also ich würds etwa so machen (in VB.net, lässt sich ja aber übersetzten):


 Dim Sourcefile As String = "FileX.txt"

        Dim dir As String = "DirectoryX"

'hier stehn nachher alle Namen von Bilddateien die da sein dürfen

        Dim gueltigeBilder As New List(Of String)

        For Each line As String In IO.File.ReadAllLines(Sourcefile)

            gueltigeBilder.Add(line)

        Next

'hier stehn die namen der Bilddateien die wirklich drin sind

        Dim Bildnamen As String() = IO.Directory.GetFiles(dir)

        For Each file As String In Bildnamen

'wenn der Filename nicht in zu den gültigen gehört, wird das File mit dem Namen gelöscht

            If Not gueltigeBilder.Contains(file) Then

                IO.File.Delete(file)

            End If

        Next

Hoffe es ist verständlich was der Code genau tut.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...