C# GZipStream将文件解压缩到单独的目录
嗨,这段代码对我有用,但它正在将文件解压缩到同一个目录中。我想把文件解压缩到一个新目录。请参阅下面的代码C# GZipStream将文件解压缩到单独的目录,c#,.net-4.5,C#,.net 4.5,嗨,这段代码对我有用,但它正在将文件解压缩到同一个目录中。我想把文件解压缩到一个新目录。请参阅下面的代码 public void Main() { DirectoryInfo directorySelected = new DirectoryInfo(m_ProjectPath+m_Tool); foreach (FileInfo fileToDecompress in directorySelected.GetFiles("*.gz")) { Dec
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);
}
}
}
}
您正在将
解压的数据流
复制到新文件名
,即:
string newFileName = currentFileName.Remove(
currentFileName.Length - fileToDecompress.Extension.Length);
查看调试器中的
newFileName
;它只是原始目录中的原始文件名,文件扩展名已删除。如果要将其复制到其他目录,则必须指定目录,而不是从currentFileName
复制目录。您想知道如何指定目录吗?这将取决于您是否有命令行应用程序、WinForm、WPF、ASP.NET或Windows应用商店应用程序。不清楚您有什么问题-请澄清(到目前为止,只要求提供功能)。您可能需要查看System.IO.Path
类,因为它可能包含解决您在实现时遇到的任何问题的解决方案。