Zum Inhalt springen

[c# .net] Dateien auflisten


Horstiii

Empfohlene Beiträge

Also mein quellcode sieht folgendermaßen aus:

string test = Convert.ToString(Directory.GetFiles("C:/Dokumente und Einstellungen/User/Eigene Dateien/Visual Studio 2008/Projects/backup/source/"));

ListBox1.Items.Add(test);

aber in der listbox steht immer nur "System.String[]" der ordner wird gefunden es ist auch eine datei drinne.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Funktioniert beides nicht, bekomme immer die meldung "Out of range exception" der wert sei wohl negativ.

das müsste doch auch mit ner foreach schleife hinzubekommen sein, z.b. um mehrere werte gleichzeitig aus der checkboxlist auszulesen:

foreach (string liste in checkedlistbox.SelectedItem.ToString())

if (checkedlistbox.ToString() == checked)

{

}

das funktioniert leider auch nicht, kann das jemand so umformen das es geht?

Link zu diesem Kommentar
Auf anderen Seiten teilen

if (checkedlistbox.ToString() == checked)

Das kann an der Stelle nicht funktionieren, da checkedlistbox.ToString() irgendwas zurückliefert wie "System.Windows.Forms.CheckedListbox". Du vergleichst also einen String mit irgendeiner anderen Eigenschaft (das ist der berühmte Vergleich zwischen Äpfeln und Birnen).

Und außerdem: Wo kommt das checked her?

Ehe ich hier irgendeinen Code liefere, erst mal eine andere Sache. Was möchtest du denn jetzt genau haben. "Selected" ist meines Wissen das Item, was gerade angewählt ist, also die Zeile, die mit so nem blauen Balken hinterlegt ist. Ich vermute jetzt aber einfach mal, dass du alle Dateien bzw. Items herausfinden möchtest, deren CheckBox angekreuzt ist.

Sehe ich das richtig?

Link zu diesem Kommentar
Auf anderen Seiten teilen

War mir schon klar was du mit dem if wolltest, aber wie gesagt, Äpfel mit Birnen vergleichen geht nicht.

Ich hab da ein schönes Beispiel in der MSDN gefunden. Ich würde mir allerdings vorher eine Liste von Strings anlegen und in der foreach-Schleife das entsprechende Item der Liste hinzufügen.

Das würde dann so aussehen:

List<String> checkedFiles = new List<String>();


foreach(object itemChecked in checkedListBox1.CheckedItems)

{

   checkedFiles.Add(itemChecked.ToString());

}

Somit müsstest du eine Liste mit allen angekreuzten Dateinamen haben, die du dann später durchiterieren kannst.

Konnte das jetzt allerdings nicht nachprüfen. Hoffentlich stimmt auch die Syntax. Hab schon seit Ewigkeiten kein C# mehr gemacht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

soweit hab ich das auch schon geschafft, aber irgendwie will die if abfrage nicht....

if (item.checked) funktioniert leider nicht, es gibt nur item.selected da hab ich dann folgendes raus gemacht....

if (item.selected == true)

{

}

aber item.selected is irgendwie immer false

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe eine CkeckBoxList die dynamisch mit folgendem Code gefüllt wird:

CheckBoxList1.Items.Clear();

            string path = MapPathSecure("/source/");

            foreach (string file in Directory.GetFiles(path))

                CheckBoxList1.Items.Add(file.Substring(93));
jetzz wollte ich mit:
if (itm.Selected == true)

                {


                    SelectedItems.Add(itm.Value);

                }

überprüfen ob ein Item angehackt wurde oder nicht, nur leider wird mir immer false zurück geliefert.

Wenn ich die CheckBoxList statisch fülle also einen festen wert eintrage, dann wird beim anhacken auch true zurück geliefert.

hat da einer ne idee?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich die CheckBoxList statisch fülle also einen festen wert eintrage, dann wird beim anhacken auch true zurück geliefert.
Kommen da Äxte zum Einsatz, oder warum sprichst du von "Hacken"? ;)

Hast du mit dem Debugger geprüft, dass Selected false ist, oder schließt du das aus dem beobachteten Verhalten des Programms?

Wie ermittelst du itm?

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...