GZipStream解压文件到一个单独的目录
问题描述:
嗨,这段代码对我来说很好,但它将文件解压到同一个目录中。我想将这些文件解压缩到一个新的目录中。见下面GZipStream解压文件到一个单独的目录
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);
}
}
}
}
答
你复制代码decompressedFileStream
到newFileName
是:
string newFileName = currentFileName.Remove(
currentFileName.Length - fileToDecompress.Extension.Length);
看看在调试器newFileName
;它只是原始目录中的原始文件名,并且文件扩展名已被删除。如果您想将其复制到不同的目录中,则必须指定目录,而不要复制currentFileName
中的目录。你想知道如何指定一个目录?这将取决于您是否有命令行应用程序,WinForm,WPF,ASP.NET或Windows应用商店应用程序。
不清楚你有什么问题 - 请澄清(到目前为止只有要求提供某项功能)。你可能想看看'System.IO.Path'类,因为它可能包含解决方案,无论你有什么问题实现。 –