[英]How to extract files in my archive one by one using sevenzipsharp
我嘗試使用此代碼:
public void Extract(string SourceFile, string password)
{
SevenZipExtractor szip = new SevenZipExtractor(SourceFile, password);
foreach (DataGridViewRow row in DGVFile.Rows)
{
string NameFile = (string)row.Cells[0].Value;
int indexZip = szip.ArchiveFileData.IndexOf(NameFile);
Stream pathDirectory = @"C:\\";
szip.ExtractFile(indexZip, pathDirectory);
}
}
但是,這是錯誤,在第7行和第8行中。也許任何人都可以解釋如何使用在datagridview中選擇的名稱在我的存檔中獲取索引文件,以及在變量pathDirectory中使用文件流的目的。 謝謝
編輯:我使用DataGridView DGVDekripsi,所以我替換了它。 這個正確的代碼,它的工作原理。
public void Extract(string SourceFile, string password)
{
string OutputLocation = txtOutputDe.Text;
SevenZipExtractor szip = new SevenZipExtractor(SourceFile, password);
foreach (DataGridViewRow row in DGVDekripsi.Rows)
{
string NameFile = (string)row.Cells[1].Value;
FileStream fs = File.OpenWrite(Path.Combine(OutputLocation, NameFile));
szip.ExtractFile(NameFile, fs );
}
return;
}
第8行(確保using System.IO;
):
FileStream fs = File.OpenWrite(Path.Combine(@"c:\", NameFile));
szip.ExtractFile(indexZip, fs);
確保您具有寫入磁盤C的權限,或將路徑更改為temp文件夾。
IndexOf()對我不起作用...我喜歡這種解決方案:
using (SevenZipExtractor zip = new SevenZipExtractor(zipFile))
{
int indexZip = zip.ArchiveFileData.First(archiveFileInfo =>
archiveFileInfo.FileName.Equals("MyFile.xml")).Index;
using (FileStream fs = File.OpenWrite(tempFile))
{
zip.ExtractFile(indexZip, fs);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.