Entwickler-Ecke

IO, XML und Registry - C# Ordner und Datei funktionen


ZoXiC - Di 20.12.11 14:14
Titel: C# Ordner und Datei funktionen
Hallo liebe C# Gemeinde,


Also ich habe folgende Frage wie kann ich das realsieren was ich in die Kommentare geschrieben habe?


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
//
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Compression;

namespace ContentCompression
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }

        private void btnOpen_Click(object sender, EventArgs e)
        {

            //TODO: Ordner öffnen, alle Dateien in Liste laden
        }

        private void btnSave_Click(object sender, EventArgs e)
        
            public class GZipStream : 
            //TODO: Alle Dateien aus Ordner mithilfe von System.IO.Compression in
            //      eine Datei schreiben (GzipStream)



        }
    }
}
//


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Di 20.12.2011 um 13:18


Christian S. - Di 20.12.11 14:19

Hallo und :welcome:!

Bei uns im Forum ist es eher Tradition, dass man Hilfe zur Selbsthilfe gibt. Daher wäre meine erste Frage: Wie hast Du es denn bisher probiert und wo kommst Du nicht weiter? :-)

Grüße,
Christian


ZoXiC - Di 20.12.11 14:26

user profile iconChristian S. hat folgendes geschrieben Zum zitierten Posting springen:
Hallo und :welcome:!

Bei uns im Forum ist es eher Tradition, dass man Hilfe zur Selbsthilfe gibt. Daher wäre meine erste Frage: Wie hast Du es denn bisher probiert und wo kommst Du nicht weiter? :-)

Grüße,
Christian


Ok das find ich allgemein ja auch besser,da man durch diese Methode auch besser lernt. Also ich habe die folgenden Suchbegriffe in Google eingegeben und Code Beispiele erhalten. Ich kann damit aber nicht so viel anfangen, da ich eig kein Programmierer bin noch am lernen. Also nen Bekannter hat mich gefragt ob ich diese einfachen Sachen für ihn erledigen kann.

An den Code Beispielen ist es so das ich nen großteil von denen nicht verstehe,weil ich kaum Kenntnisse über die Syntax oder C# habe.

Das mal als Beispiel:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
using System;
using System.IO;
using System.Windows.Forms;

namespace FCL_Buch._System_IO {

public class Samples_Dateisystem {
public void Datei_Liste() {

// Liste der Dateien in einem bestimmten Ordner
string verzeichnis = @"..\_daten\dateisystem\";

// Zugriff auf ein Dateiverzeichnis
DirectoryInfo d = new DirectoryInfo(verzeichnis);

// Prüfung auf Existenz
if ( !d.Exists ) {
FclOutput.PrintOut("Verzeichnis nicht vorhanden!");
return;
}


// Ausgabe von Informationen über den Ordner
FclOutput.PrintOut("Erzeugt am: " + d.CreationTime);
FclOutput.PrintOut("Zuletzt gelesen am : " + d.LastAccessTime);
FclOutput.PrintOut("Zuletzt geändert am : " + d.LastWriteTime);
FclOutput.PrintOut("Wurzelordner: " + d.Root.Name);
FclOutput.PrintOut("Name des übbergeordneten Ordners: " + d.Parent.Name);
FclOutput.PrintOut("Pfad des übbergeordneten Ordners: " + d.Parent.FullName);

// Liste bestimmter Dateien
FclOutput.PrintOut("Alle Text-Dateien in Ordner: " + d.FullName);
foreach (FileInfo f in d.GetFiles("*.txt"))
FclOutput.PrintOut(f.Name + ";" + f.Length + ";" + f.CreationTime);
}
}
}

am besten ich lese mich da erst rein und stelle dann meine Fragen!
Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


ZoXiC - Do 22.12.11 20:35


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Compression;

namespace ContentCompression
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }

        private void btnOpen_Click(object sender, EventArgs e)

            //TODO: Ordner öffnen, alle Dateien in Liste laden
        {
            System.IO.DirectoryInfo ParentDirectory = new System.IO.DirectoryInfo("C:\\Testordner");

            foreach (System.IO.FileInfo f in ParentDirectory.GetFiles())
            {
                Console.WriteLine("Datei: " + f.Name);
            }

            foreach (System.IO.DirectoryInfo d in ParentDirectory.GetDirectories())
            {
                Console.WriteLine("Ordner: " + d.Name);
            }

            //TODO: Ordner öffnen, alle Dateien in Liste laden
                  
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            //TODO: Alle Dateien aus Ordner mithilfe von System.IO.Compression in
            //      eine Datei schreiben (GzipStream)
        }
    }
}


Ich habe zur Zeit diesen Code möchte nun das er das nun noch in einer Liste ausgibt und das auf eine Windows form Umgebung ausgibt.
Moderiert von user profile iconTh69: Fullquote entfernt.
Moderiert von user profile iconTh69: C#-Tags hinzugefügt


Th69 - Do 22.12.11 20:57

Hallo ZoXiC,

am besten, du ziehst eine ListBox (aus der ToolBox) auf deine Form und kannst dann mittels

C#-Quelltext
1:
listBox.Items.Add(f.Name);                    

die Dateien dort (untereinander) ausgeben lassen.

Ohne Grundlagenkenntnisse von C# wirst du da aber nicht viel weiter kommen, ohne immer wieder einzelne Fragen stellen zu müssen.

Aber jedes normale Zip-Programm beherrscht das Packen von mehrere Dateien in eine einzige Datei (das ist ja deren Hauptaufgabe ;-))
Und speziell das GZip-Format gibt es kostenlos (für sehr viele Plattformen, u.a. auch Windows) direkt unter http://www.gzip.org


ZoXiC - Do 22.12.11 21:03

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Hallo ZoXiC,

am besten, du ziehst eine ListBox (aus der ToolBox) auf deine Form und kannst dann mittels

C#-Quelltext
1:
listBox.Items.Add(f.Name);                    

die Dateien dort (untereinander) ausgeben lassen.

Ohne Grundlagenkenntnisse von C# wirst du da aber nicht viel weiter kommen, ohne immer wieder einzelne Fragen stellen zu müssen.

Aber jedes normale Zip-Programm beherrscht das Packen von mehrere Dateien in eine einzige Datei (das ist ja deren Hauptaufgabe ;-))
Und speziell das GZip-Format gibt es kostenlos (für sehr viele Plattformen, u.a. auch Windows) direkt unter http://www.gzip.org


Das ist mir auch bewusst, ich muss das nun erstmal irgendwie fertig kriegen.Dann werd ich mich darum kümmern.Das Grundlagen geschaffen werden.