1. C#壓縮代碼
GZipStream compStream =
new GZipStream(destFile, CompressionMode.Compress); //destFile是壓縮後的文件
int theByte = sourceFile.ReadByte(); //sourceFile 是待壓縮的文件
while (theByte != -1)
{
compStream.WriteByte((byte)theByte);
theByte = sourceFile.ReadByte();
}
package com.io2.homework;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/*壓縮文件夾*/
public class MyMultipleFileZip
{
private String currentZipFilePath = "F:/MyZip.zip";
private String sourceFilePath;
private ZipOutputStream zos;
private FileInputStream fis;
public MyMultipleFileZip(String sourceFilePath)
{
try
{
this.sourceFilePath = sourceFilePath;
zos = new ZipOutputStream(new FileOutputStream(currentZipFilePath));
//設定文件壓縮級別
zos.setLevel(9);
} catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
// 在當前條目中寫入具體內容
public void writeToEntryZip(String filePath)
{
try
{
fis = new FileInputStream(filePath);
} catch (FileNotFoundException e1)
{
e1.printStackTrace();
}
byte[] buff = new byte[1024];
int len = 0;
try
{
while ((len = fis.read(buff)) != -1)
{
zos.write(buff, 0, len);
}
} catch (IOException e)
{
e.printStackTrace();
}finally
{
if (fis != null)
try
{
fis.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
// 添加文件條目
public void addFileEntryZip(String fileName)
{
try
{
zos.putNextEntry(new ZipEntry(fileName));
} catch (IOException e)
{
e.printStackTrace();
}
}
public void addDirectoryEntryZip(String directoryName)
{
try
{
zos.putNextEntry(new ZipEntry(directoryName + "/"));
} catch (IOException e)
{
e.printStackTrace();
}
}
// 遍歷文件夾
public void listMyDirectory(String filePath)
{
File f = new File(filePath);
File[] files = f.listFiles();
if(files!=null)
{
for (File currentFile : files)
{
// 設置條目名稱(此步驟非常關鍵)
String entryName= currentFile.getAbsolutePath().split(":")[1].substring(1);
// 獲取文件物理路徑
String absolutePath = currentFile.getAbsolutePath();
if (currentFile.isDirectory())
{
addDirectoryEntryZip(entryName);
//進行遞歸調用
listMyDirectory(absolutePath);
}
else
{
addFileEntryZip(entryName);
writeToEntryZip(absolutePath);
}
}
}
}
// 主要流程
public void mainWorkFlow()
{
listMyDirectory(this.sourceFilePath);
if(zos!=null)
try
{
zos.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
new MyMultipleFileZip("F:/fountainDirectory").mainWorkFlow();
}
}
3. 蘋果手機怎麼查看壓縮文件
1、在蘋果手機上找到「壓縮文件」。
2、進入後點擊右上角的「三個圓點」。
3、點擊「用其他應用打開」,選擇「拷貝到WPS office」。
4、此時即可在WPS中解壓文件。
壓縮文件,簡單的說,就是經過壓縮軟體壓縮的文件叫壓縮文件,壓縮的原理是把文件的二進制代碼壓縮,把相鄰的0,1代碼減少,比如有000000,可以把它變成6個0 的寫法60,來減少該文件的空間。
壓縮文件的基本原理是查找文件內的重復位元組,並建立一個相同位元組的"詞典"文件,並用一個代碼表示,比如在文件里有幾處有一個相同的詞"中華人民共和國"用一個代碼表示並寫入"詞典"文件,這樣就可以達到縮小文件的目的。
4. 怎麼查看壓縮文件
問題一:怎麼查看電腦里的所有rar文件 打開我的電腦。點上面的搜索。然後在文件那輸入 (*.rar)無括弧。范圍我的電腦。開始搜索就可以了
問題二:如何查找電腦內所有壓縮文件 在搜索中直接輸入.rar就可以找到了.
問題三:怎麼查看文件夾有沒有壓縮文件 直接Ctrl+F組合鍵,鍵入.rar或 .zip 或 .7z等主流壓縮格式搜索,一般來說,壓縮文件都有專屬的圖標,如圖
一看就知道是不是了。另外,你也可以設置文件夾工具,將查看選項改為「顯示所有文件和文件夾」,這樣你就可以查看被隱藏起來的文件了
問題四:怎樣查看電腦里的壓縮文件 你好朋友,你好好想想,那個文檔原來在什麼地方,如果他在C盤裡面的話那你重裝系統他肯定就沒有了,重裝系統會把C盤格式化,格式化了原來C盤裡面的什麼東西都沒有了,如果他在別的盤裡面的話那你就打開別的盤,好好找找邊找邊想想,他叫什麼名稱,然後打開資源管理器按f3輸入他的名稱搜索一下看看
問題五:怎樣查找壓縮文件 開始---搜索
在「要搜索的文件或文件夾名為」後面填上「rar」
然後「立即搜索」,就可以找到了
問題六:壓縮文件隱藏以後如何找出來 1、打開「我的電腦」-------->在我的電腦窗口的上方有一個「工具」選項,點擊它----->選擇「文件夾選項」---->在文件夾選項中選擇「查看」------->在查看類型中,找到「顯示所有文件和文件夾」....這樣就可以顯示已經隱藏的文件了
2、如果你知道隱藏文件的名稱,恭接在我的電腦上面搜索也可以找的到
問題七:怎麼查看自己的壓縮軟體,還有怎麼壓縮文件? 怎麼查看自己是否有壓縮軟體?如果有怎麼壓縮文件?
打開搜索 搜索全硬碟關鍵字「WINRAR」 有結果你就有
壓縮的話右鍵里膽
我曾經把一些都系解壓過,這是不是說明我有壓縮軟體?
是的
有人說用右鍵點要壓縮的東西裡面就會有壓縮,可我有右鍵點了一個文件裡面只有打開,資源管理器,發送到..和其他東西沒有壓縮的字樣呀
說明你沒有安裝
我是電腦 *** 不要罵我啊
*** 不可恥 學習就好!
問題八:怎麼打開壓縮文件? 常見壓縮文件有兩種格式,分別為RAR或ZIP。對於壓縮文件的操作,通常可以使用WINRAR程序來實現。下面就一起來看一下WINRAR程序的具體使用方法。
裝一個WINRAR,然後在要解壓的文件上點右鍵,釋放文件。
當然,我們也可以直接雙擊想要打開的壓縮文件。此時會自動進入文件預覽界面,在此可對壓縮文件內部的各文件及文件夾進行操作。
問題九:迅雷下載怎樣查看壓縮包內文件? (首先迅雷版本要比較新) 在文件上右鍵選擇「詳情頁」,就能看到壓縮包里的文件名。(但是:不能查看文件內容)
問題十:蘋果手機如何看壓縮文件包 解壓和預覽 zip 文件看起來已經不是什麼厲害的功能,但對蘋果設備來說,蘋果有著嚴格的控制。如今 iOS 7 終於允許用戶在郵件中解壓和預覽 zip 文件。
最初,iOS 無法識別 zip 文件,用戶在郵件中試圖打開時,會提示無法識別文件格式。直到 iOS 4,蘋果添加了「(Open in)在應用中打開」的功能,允許用戶選擇第三方應用程序來打開 zip 壓縮文件。比如,用戶可以選擇 GoodReader 來解壓和查看文件。但這種方法仍不夠完美,萬一 iPhone 沒有安裝這些支持的第三方應用,這個功能就相當於形同虛設了。
iOS 7 才算是真正解決了用戶的困擾。如今,用戶可以直接點擊郵件中的壓縮文件,然後左右滑動來瀏覽文件。還能在一個文件夾中快速預覽壓縮包中的所有文件。
Open in 功能依然還存在,用戶可以發送某部分的文件到第三方應用,或保存圖片到相冊,還有各種共享的選項。
簡訊程序也能預覽壓縮文件了,可惜 Safari 還不能在瀏覽器中載入壓縮文件,需要藉助第三方應用。
5. C++如何讀取壓縮文件數據
首先指出你提問的一個錯誤這個不是C++實現, 這個是純C實現的
你說的BZ2_開頭,這些只是變數名字而已,沒什麼特別的意思。
給你解釋一句吧:
BZ2_bzlibVersion=GetProcAddress(hLib,"BZ2_bzlibVersion");
要解釋這句話首先你要明白這個c程序本身是不能解壓的,他是調用了一個動態庫libbz2-1.0.2.DLL里的函數,你可以從
#define BZ2_LIBNAME "libbz2-1.0.2.DLL"
hLib=LoadLibrary(BZ2_LIBNAME);
這兩句看出來他載入了上面說的那個庫,然後回到剛才那句,BZ2_bzlibVersion是定義的一個函數指針,定義語句他省略了。這里用了C語言的defalut-int定義。
GetProcAddress用來獲得庫函數的入口地址,hLib是前面打開的庫函數文件句柄(hLib=LoadLibrary(BZ2_LIBNAME);),"BZ2_bzlibVersion"是庫函數的需要調用的函數名。
這句話最終的功能就是把原來庫函數的,"BZ2_bzlibVersion"函數地址賦值給函數指針BZ2_bzlibVersion,以後調用BZ2_bzlibVersion就可以實現庫函數,"BZ2_bzlibVersion"的功能。
後面幾句話都是一樣的,fwrite是寫文件,stdout是輸出流,這些都可以網路到。
說實話你一個新手看這個真的沒什麼意義。你問的也是些細枝末節的問題,這個程序其實核心功能只有兩句話:
while((len=BZ2_bzread(BZ2fp_r,buff,0x1000))>0){
fwrite(buff,1,len,fp_w);
}
while((len=fread(buff,1,0x1000,fp_r))>0){
BZ2_bzwrite(BZ2fp_w,buff,len);
}
而這兩句話調用的是調用庫函數BZ2_bzread和BZ2_bzwrite來進行解壓fwrite和fread是寫文件和讀文件。即使你都看懂了,你就會解壓了嗎?即使看懂你還是什麼都不會,你只是會調用一個庫函數而已。如果你要研究這個庫函數,那就更不是一兩個問題能說清的了。建議你還是從基礎,一步一個腳印地學習C/C++
祝好運