[C#] Content Compression

TiZoXiiC

Grünschnabel
Hallo,

ich möchte folgendes realisieren.Ich möchte Datein eines Ordners auslesen lassen und sie in einer Liste in einer Windowsform ausgeben.Mit der Liste möchte ich später arbeiten aus der Liste möchte ich dann die Datein nehmen und sie in eine datei kompremieren mithilfe von System.IO.Compression als GzipStream.Dazu ist noch zusagen,ich programmiere noch nicht sehr lang noch sehr sehr unerfahren.Wollte fragen ob ein Erfahrener mir evt. Denkanstöße mir geben könnte wie man dieses realisieren könnte.


Code:
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)
        {
            //TODO: Alle Dateien aus Ordner mithilfe von System.IO.Compression in
            //      eine Datei schreiben (GzipStream)
        }
    }
}
 
Hi und Willkommen bei tutorials.de,

sorry für die späte Antwort.

Also, als Erstes musst du Mal alle Dateinamen aus dem Verzeichnis herausfinden.
das geht in C# recht einfach, so:
C#:
string[] dateien = Directory.GetFiles("pfad");
wobei pfad eben der Verzeichnispfad ist.

Dann machst du einen FileStream mit Schreibzugriff, um die neue Datei schreiben zu können.
Zusätzlich den GZipStream, der den FileStream als Ziel haben will.

Mit einer foreach-Schleife wird dann das dateien-Array durchgegangen.
Pro Dateiname öffnest du einen Filestream, liest alles heraus, schreibst es
in den GZipStream, und schließt ihn wieder.

Am Schluss noch den GZipStream und den "seinen" FileStream schließen.

Gruß
 
Zurück