我使用這個代碼文件的壓縮來壓縮需要使用Gstream
public static void Compress(FileInfo fileToCompress)
{
using (FileStream originalFileStream = fileToCompress.OpenRead())
{
if ((File.GetAttributes(fileToCompress.FullName) & FileAttributes.Hidden) != FileAttributes.Hidden & fileToCompress.Extension != ".zip")
{
using (FileStream compressedFileStream = File.Create(fileToCompress.FullName + "_" + DateTime.Now.ToString("dd_MM_yyyy") + ".zip"))
{
using (GZipStream compressionStream = new GZipStream(compressedFileStream, CompressionMode.Compress))
{
originalFileStream.CopyTo(compressedFileStream);
Console.WriteLine("Compressed {0} from {1} to {2} bytes.",
fileToCompress.Name, fileToCompress.Length.ToString(), compressedFileStream.Length.ToString());
}
}
}
}
}
與此代碼我將文件轉換爲壓縮 ,比如我有文件,名稱myfile.pdf 什麼的確,它保存此文件與myfile.pdf_31_7_2013.zip 但問題是,當我解壓這個zip它包含我的extention myfile.pdf_31_7_2013文件堂妹及其延伸從.PDF改爲.pdf_31_7_2013
這將是invaild文件所以它的擴展改變了。我想修改代碼的方式是,zip名稱應該與現在執行的 相同。但裏面,我的文件應該只與myfile.pdf
請幫我解決這個問題。在此先感謝
第一個問題:一個GZipStream不是一個zip文件,所以不應該被稱爲一個zip文件。至於其餘 - 這是你的命名方案......你應該調整它到任何你想要的。例如,你可以把日期*放在*擴展名之前,而不是之後...... –
@Jon:使這個答案... mer正在創建一個gzip文件,並且 - 默認情況下 - gzip提取自動刪除擴展名(正確「.gz」),留下描述的文件名。 – eFloh