2010-11-23 2 views
0

Will jemand bitte ein Beispiel geben, habe ich gegoogelt aber kein passendes Ergebnis gefunden.Was ist ICSharpCode.SharpZipLib.ZipEntry.Flag?

I Flagge geben will, so dass sie die Datei mit dem ursprünglichen Namen bei Namens I

ZipEntry entry = new ZipEntry(file.FullName.Substring(directory.FullName.Length + 1)); 
        entry.Flags |= 2048; // enable UTF8 file names 

bin derzeit

mit spezieller characters.for Beispieldatei zu komprimieren, was das Flag sein sollte den Dateinamen der speziellen Charaters zu stützen?

Thanx

Antwort

3

Quellcode für diese Komponente finden Sie hier:

http://www.icsharpcode.net/opensource/sharpziplib/Download.aspx

Wenn Sie die Quelle und überprüfen Sie den Code für ZipEntry, können Sie problemlos die folgenden Kommentare für das Flags Eigenschaft finden .

/// 
/// Get/Set general purpose bit flag for entry 
/// 
/// 
/// General purpose bit flag 
/// 
/// Bit 0: If set, indicates the file is encrypted 
/// Bit 1-2 Only used for compression type 6 Imploding, and 8, 9 deflating 
/// Imploding: 
/// Bit 1 if set indicates an 8K sliding dictionary was used. If clear a 4k dictionary was used 
/// Bit 2 if set indicates 3 Shannon-Fanno trees were used to encode the sliding dictionary, 2 otherwise 
/// 
/// Deflating: 
/// Bit 2 Bit 1 
///  0  0  Normal compression was used 
///  0  1  Maximum compression was used 
///  1  0  Fast compression was used 
///  1  1  Super fast compression was used 
/// 
/// Bit 3: If set, the fields crc-32, compressed size 
/// and uncompressed size are were not able to be written during zip file creation 
/// The correct values are held in a data descriptor immediately following the compressed data. 
/// Bit 4: Reserved for use by PKZIP for enhanced deflating 
/// Bit 5: If set indicates the file contains compressed patch data 
/// Bit 6: If set indicates strong encryption was used. 
/// Bit 7-10: Unused or reserved 
/// Bit 11: If set the name and comments for this entry are in <a href="http://www.unicode.org">unicode</a>. 
/// Bit 12-15: Unused or reserved 
/// 
/// <seealso cref="IsUnicodeText"></seealso> 
/// <seealso cref="IsCrypted"></seealso> 

Also, ORing 2048 in Flags, wie Sie getan haben, sieht korrekt aus. Oder Sie können die IsUnicodeText-Eigenschaft festlegen, die dasselbe tut, aber den Code etwas sauberer aussehen lässt:

entry.IsUnicodeText = true;