您好这段代码对我有用,但它将文件解压缩到同一目录中。我想将文件解压缩到一个新目录。见下面的代码
public void Main()
{
DirectoryInfo directorySelected = new DirectoryInfo(m_ProjectPath+m_Tool);
foreach (FileInfo fileToDecompress in directorySelected.GetFiles("*.gz"))
{
Decompress(fileToDecompress);
}
}
public void Decompress(FileInfo fileToDecompress)
{
using (FileStream originalFileStream = fileToDecompress.OpenRead())
{
string currentFileName = fileToDecompress.FullName;
string newFileName = currentFileName.Remove(
currentFileName.Length - fileToDecompress.Extension.Length);
using (FileStream decompressedFileStream = File.Create(newFileName))
{
using (GZipStream decompressionStream =
new GZipStream(originalFileStream, CompressionMode.Decompress))
{
decompressionStream.CopyTo(decompressedFileStream);
}
}
}
}
答案 0 :(得分:0)
您正在将newFileName
复制到string newFileName = currentFileName.Remove(
currentFileName.Length - fileToDecompress.Extension.Length);
,即:
newFileName
在调试器中查看currentFileName
;它只是原始目录中的原始文件名,删除了文件扩展名。如果要将其复制到其他目录,则必须指定目录,而不是从{{1}}复制该目录。您想知道如何指定目录吗?这将取决于您是否有命令行应用程序,WinForm,WPF,ASP.NET或Windows应用商店应用程序。