C# Programm das Laufwerke durchsuchen soll und alle Dateien über 20mb ausgeben soll

...komplette Frage anzeigen

3 Antworten

System.IO.DirectoryInfo ParentDirectory = new System.IO.DirectoryInfo("C:\"); foreach(System.IO.FileInfo c in ParentDirectory.GetFiles()) { lbFiles.Items.Add("Datei:" + c.Name); }

jedoch durchsucht das nicht das komplette verzeichnis C sondern nur ein paar dateien werden aufgelistet. und wie mach ich das dann das nur alles über X MB ausgegeben wird?:)

Das durfte so in etwa functionieren:

        DirectoryInfo directory = new DirectoryInfo( @"c:\" );
        int noLargerThan = 1048576 * 20; // 20mb.
        var filesLagerThanTwentyMb = directory.GetFiles("*.*", SearchOption.AllDirectories).Where(file => file.Length > noLargerThan);
        if (null != filesLagerThanTwentyMb)
        {
            foreach (var file in filesLagerThanTwentyMb)
            {
                Console.WriteLine("{0} - {1} bytes", file.FullName, file.Length);
            }
        }
Silentix 17.04.2014, 14:22

Danke für deine Antwort! :) hast sehr geholfen. nur gibt er mir eine fehlermeldung aus. da ich das ganze nicht mit 20 mb machen möchte sondern mit X MB sprich die 1048576 * Textbox1

jedoch die fehlermeldung ist der operator "*" kann nicht auf operanden vom typ int oder string angewendet werden

0
Toraka 17.04.2014, 17:43
@Silentix

String in Zahl wandeln...

int zahl = 0;
bool parseOk = int.TryParse(TextBoxName.Text, out zahl);
if (parseOk)
{
  int ergebnis = 1048576 * zahl;
  //und so weiter und so fort
}
2
Silentix 17.04.2014, 14:31

Ist übrigens WIndows Forms

0
Woolli 17.04.2014, 14:41
@Silentix

der wert in dein textbox ist vom type string. denn musstest du in eine zahl umwandeln...

eine einfache cast geht: (int)textbox1.text

allerdings ist das nicht zu empfehlen da auch nicht zahlen (zb buchstaben & sonderzeichen) eingetragen sein koennen....

deswegen musste geprueft werden das nur zahlen eingetragen sind.

1
Silentix 17.04.2014, 15:18

Dir_C_btn("{0} - {1} bytes", file.FullName, file.Length);

dann müsste es doch theoretisch so funktionieren das man die X mb auf den button Dir_C_btn legt oder?

0
Toraka 17.04.2014, 17:40
@Silentix

Was bedeutet das? 20mb auf den Button legen?

0
Toraka 17.04.2014, 17:50
@Toraka

Wenn du damit zu sagen versuchst, auf dem Button stehen "20mb" notiert und mit eben diesem Wert soll gerechnet werden, dann funktioniert das genauso wie mit der TextBox, mit dem einzigen Unterschied, dass mit dem Property "Text" des Buttons gearbeitet wird, nicht mit jenem der TextBox.

Wie ist diese Firma auf die Idee gekommen, ausgerechnet dir die Lösung der Software-Aufgabe zu übergeben, wenn du über weniger als fundamentale Kenntnisse verfügst?

0

Na dann, auf. Wo ist Dein Ansatz?

Silentix 17.04.2014, 10:07

Das ist mein Problem. Hatten das Thema in der Schule noch nicht und nun soll ich das Programm für eine Firma schreiben :D

0

Was möchtest Du wissen?