C# Visual Studio 无法识别 ZipFile.ExtractToDirectory
C# Visual Studio doesn't recognize ZipFile.ExtractToDirectory
我正在为一个工作项目开发一个下载器工具,我正在尝试创建一个函数来解压缩 zip 文件并将内容提取到一个临时目录。 (我使用的是 Visual Studio Professional,版本 4.5.1。)
然而,即使在我的引用中添加了 System.IO.Compression 和 System.IO.Compression.FileSystem.dll 之后,visual studio 仍然无法识别 ExtractToDirectory 方法。错误消息告诉我 "Ionic.Zip.ZipFile does not contain a definition for 'ExtractToDirectory'"。
有人知道如何解决这个问题以便我可以提取我的文件吗?这是我的代码(传入了 zip 的文件路径):
private void UnzipStation(string zipPath)
{
try
{
string newFp = Path.Combine(Path.GetTempPath(), "CommissioningFiles");
Directory.CreateDirectory(newFp);
ZipFile.ExtractToDirectory(zipPath, newFp);
}
catch (Exception ex)
{
MessageBox.Show("Error unzipping station files. Contact a Novar representative. \n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
您的项目中有 DotNetZip 的引用和使用语句 (Ionic.Zip.ZipFile)。如果您决定停止使用它并开始使用 System.IO.Compression,请删除此 using 语句和引用。如果您仍在其他地方使用 DotNetZip,请使用 System.IO.Compression.Zipfile.ExtractToDirectory(zipPath,newFp);
显式使用来自 System.IO.Compression.
的 ZipFile class
The error message tells me "Ionic.Zip.ZipFile does not contain a definition for 'ExtractToDirectory'".
您有两个名为 ZipFile
的 class 对编译器来说是 "available"。 C# 编译器对您尝试使用的编译器感到困惑。它认为你想使用 Ionic.Zip.ZipFile
,当你真的想使用 System.IO.Compression.ZipFile
.
您可以通过两种方式解决这个问题。首先,完全指定要使用的 ZipFile
class 的命名空间:
System.IO.Compression.ZipFile.ExtractToDirectory(zipPath, newFp);
或者,您可以在 C# 文件的顶部添加一个 using
指令:
using ZipFile = System.IO.Compression.ZipFile;
要使用 Ionic.Zip,您必须这样做:
using (ZipFile zipFile = new ZipFile(filePath))
{
zipFile.ExtractAll(newFp);
}
我正在为一个工作项目开发一个下载器工具,我正在尝试创建一个函数来解压缩 zip 文件并将内容提取到一个临时目录。 (我使用的是 Visual Studio Professional,版本 4.5.1。)
然而,即使在我的引用中添加了 System.IO.Compression 和 System.IO.Compression.FileSystem.dll 之后,visual studio 仍然无法识别 ExtractToDirectory 方法。错误消息告诉我 "Ionic.Zip.ZipFile does not contain a definition for 'ExtractToDirectory'"。
有人知道如何解决这个问题以便我可以提取我的文件吗?这是我的代码(传入了 zip 的文件路径):
private void UnzipStation(string zipPath)
{
try
{
string newFp = Path.Combine(Path.GetTempPath(), "CommissioningFiles");
Directory.CreateDirectory(newFp);
ZipFile.ExtractToDirectory(zipPath, newFp);
}
catch (Exception ex)
{
MessageBox.Show("Error unzipping station files. Contact a Novar representative. \n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
您的项目中有 DotNetZip 的引用和使用语句 (Ionic.Zip.ZipFile)。如果您决定停止使用它并开始使用 System.IO.Compression,请删除此 using 语句和引用。如果您仍在其他地方使用 DotNetZip,请使用 System.IO.Compression.Zipfile.ExtractToDirectory(zipPath,newFp);
显式使用来自 System.IO.Compression.
The error message tells me "Ionic.Zip.ZipFile does not contain a definition for 'ExtractToDirectory'".
您有两个名为 ZipFile
的 class 对编译器来说是 "available"。 C# 编译器对您尝试使用的编译器感到困惑。它认为你想使用 Ionic.Zip.ZipFile
,当你真的想使用 System.IO.Compression.ZipFile
.
您可以通过两种方式解决这个问题。首先,完全指定要使用的 ZipFile
class 的命名空间:
System.IO.Compression.ZipFile.ExtractToDirectory(zipPath, newFp);
或者,您可以在 C# 文件的顶部添加一个 using
指令:
using ZipFile = System.IO.Compression.ZipFile;
要使用 Ionic.Zip,您必须这样做:
using (ZipFile zipFile = new ZipFile(filePath))
{
zipFile.ExtractAll(newFp);
}