2013-01-24 161 views
0

我想知道是否可以gzip一個powerpoint文件。我問這個問題的原因是因爲我發現的所有文章都是壓縮.txt,並想知道是否可以通過使用c#來gzip .pptx ..下面的代碼是我正在使用gzipping powerpoint文件不能正常工作

static void Main() 
    { 
    try 
    { 
     string anyString = File.ReadAllText("presentation.pptx"); 

     CompressStringToFile("new.gz", anyString); 
    } 
    catch 
    { 
     // Couldn't compress. 
    } 
    } 

    public static void CompressStringToFile(string fileName, string value) 
    { 
    // A. 
    // Write string to temporary file. 
    string temp = Path.GetTempFileName(); 
    File.WriteAllText(temp, value); 

    // B. 
    // Read file into byte array buffer. 
    byte[] b; 
    using (FileStream f = new FileStream(temp, FileMode.Open)) 
    { 
     b = new byte[f.Length]; 
     f.Read(b, 0, (int)f.Length); 
    } 


    using (FileStream f2 = new FileStream(fileName, FileMode.Create)) 
    using (GZipStream gz = new GZipStream(f2, CompressionMode.Compress, false)) 
    { 
     gz.Write(b, 0, b.Length); 
    } 
    } 

回答

2

.pptx文件(也是.docx和.xlsx)已壓縮。如果您將文件擴展名更改爲.zip並打開文件,您將看到內容。

因此,儘管您應該能夠對這些文件中的一個進行gzip,但您不太可能會看到大量的進一步壓縮。

+0

說,我有一個1MB的文件,我想gzip它不會有很大的區別。 –

+0

但我說我還想gzip文件我怎麼能這樣做 –

+0

好吧,而不是File.ReadAllText(.pptx不是文本文件)我認爲你應該在.pptx文件上打開FileStream。進入一個循環,用fileStream.read()讀取塊並將這些塊寫入您的GZipStream。 – Martin