 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
VANYA
Anmeldungsdatum: 17.06.2011 Beiträge: 8
|
Verfasst am: 17.06.2011, 10:31 Titel: Die Arbeit mit ZIP von den Mitteln Windows |
|
|
Искал по интернету возможность упаковки\распаковки ZIP средствами Windows. Но все, что я сумел найти это код на C#. Может кто подсказать, есть ли возможность его перевести на FreeBasic ?
Suchte nach dem Internet die Möglichkeit der Verpackung \Entpackens ZIP von den Mitteln Windows. Aber allen, dass ich geschaffen habe, es den Kode auf C # zu finden. Ob wer vorsagen kann es gibt die Möglichkeit es, auf FreeBasic zu übersetzen.
Code: | // C# version 3.0
using System;
using System.IO;
using System.Text;
using Shell32; // Reference to C:\WINDOWS\system32\shell32.dll
public static class Zipper {
public static void Compress(string zipFileName, params string[] fileNames) {
//Create an empty zip file
byte[] emptyzip = new byte[] {80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
using (FileStream fileStream = File.Create(zipFileName)) {
fileStream.Write(emptyzip, 0, emptyzip.Length);
fileStream.Flush();
fileStream.Close();
}
Add(zipFileName, fileNames);
}
public static void Add(string zipFileName, params string[] fileNames) {
Folder destFolder = new ShellClass().NameSpace(zipFileName);
foreach (string filename in fileNames)
destFolder.CopyHere(filename, 20);
}
public static void Extract(string zipFileName, string targetPath) {
Folder srcFolder = new ShellClass().NameSpace(zipFileName);
Folder dstFolder = new ShellClass().NameSpace(targetPath);
dstFolder.CopyHere(srcFolder.Items(), 20);
}
}
// Zipper test
internal class Program {
private static void Main(string[] args) {
FileInfo zipFileInfo = new FileInfo(Path.Combine(Path.GetTempPath(), Path.GetRandomFileName() + ".zip"));
if (zipFileInfo.Exists)
zipFileInfo.Delete();
Zipper.Compress(zipFileInfo.FullName); // just create empty zip-file
DirectoryInfo sourceDir = new DirectoryInfo(Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()));
if (!sourceDir.Exists)
sourceDir.Create();
for (int i = 0; i < 31; i++) {
FileInfo fileInfo = new FileInfo(Path.Combine(sourceDir.FullName, Path.GetRandomFileName()));
if (!fileInfo.Exists) {
using (FileStream fileStream = fileInfo.Create()) {
for (int j = 0; j < 15; j++) {
byte[] bytes = Encoding.Default.GetBytes(fileInfo.FullName + Environment.NewLine);
fileStream.Write(bytes, 0, bytes.Length);
}
fileStream.Close();
}
}
Zipper.Add(zipFileInfo.FullName, fileInfo.FullName);
}
DirectoryInfo targetDir = new DirectoryInfo(Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()));
if (!targetDir.Exists)
targetDir.Create();
Zipper.Extract(zipFileInfo.FullName, targetDir.FullName);
sourceDir.Delete(true);
targetDir.Delete(true);
zipFileInfo.Delete();
}
} |
Работа при помощи ZLIB , 7ZIP и других библиотек меня не интересует.
Die Arbeit mit Hilfe ZLIB, 7ZIP und anderer Bibliotheken interessiert mich nicht. _________________ http://free-basic.ru/ - Russian FreeBasic site |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 17.06.2011, 11:22 Titel: |
|
|
Der Code wird nur mit .net-Sprachen funktionieren, also nicht mit FreeBASIC. Unter FreeBASIC kannst du die Zip-Bibliothek von Info-Zip verwenden. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
VANYA
Anmeldungsdatum: 17.06.2011 Beiträge: 8
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 17.06.2011, 14:35 Titel: |
|
|
Das ist zwar eine andere Bibliothek, aber sie wird sicher genau so gut funktionieren. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
VANYA
Anmeldungsdatum: 17.06.2011 Beiträge: 8
|
Verfasst am: 17.06.2011, 14:38 Titel: |
|
|
Danke! _________________ http://free-basic.ru/ - Russian FreeBasic site |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|