看起来在C#中没有内置的Library/API来解压缩zip文件.我正在寻找一个免费的(更好的开源)库/ API,它可以与.Net 3.5 + VSTS 2008 + C#一起解压zip文件并将所有文件解压缩到一个特定的文件夹中.
任何推荐的库/ API或样品?
我有一个程序(用C#编写)直接读取/写入数据(没有服务器的直接文件访问)到firebird数据库文件.为了更好的交换,我希望(un)在导入/导出时压缩它们,以便通过互联网进行更好的交换,而无需外部程序来(不)压缩它们.
我知道#ziplib支持Zip,GZip,Tar和BZip2.
你知道C#还有哪些免费的压缩库?是否有支持LZMA的.NET库,因此我可以读/写".7z"文件?
有没有人为SharpZipLib提供替代库的建议,使用C#进行全功能的ZIP文件处理?
我们寻找替代方案的原因是许可.尽管该项目获得了GPL许可的附加条款,但它仍然不符合我们的法律要求.大多数其他开源许可证都可以,特别是学术或BSD-esque.商业许可证也很酷.
任何帮助,将不胜感激,
谢谢.
我有一个包含多个文件的目录.我想将此文件夹压缩为zip或tar.gz文件.我怎样才能在C#中完成他的工作?
zip is not recognized as an internal or external command
我在我的机器上哪里可以找到zip以便运行
“zip”命令?
所以,我的应用程序依赖于大量的小文件。实际数字约为 90,000 人。现在,我使用一个需要访问这些文件的组件,但它接受这些文件的唯一方法是使用 URI。
到目前为止,我在开发应用程序时只是将包含所有文件的目录添加到我的调试文件夹中。然而,现在我必须考虑部署。我可以选择哪些选项将所有这些文件包含在我的部署中?
到目前为止,我已经提出了几种不同的解决方案,但没有一个能够完全发挥作用。首先是将所有文件添加到安装程序中,然后安装程序会将它们复制到其位置。这至少在理论上是可行的,但是它会使维护安装程序(使用 VS 生成的标准 MSI 安装程序)变得绝对是地狱。
我想到的下一个选项是将它们压缩到一个文件中,并将其添加为安装程序的一部分,然后使用自定义操作解压缩它们。然而,标准库似乎不支持复杂的 zip 文件,这使得这是一个相当困难的选择。
最后,我意识到我可以创建一个单独的项目并将所有文件添加为该项目中的资源。我不知道的是指向其他程序集中存储的资源的 URI 是如何工作的。意思是,所有支持“application://,,,:Assembly”格式的东西都是“标准”吗?
那么,这些是我唯一的选择,还是还有其他选择?解决这个问题的最佳选择是什么?
这是我正在寻找的:
我需要打开一个zip文件的图像并迭代它的内容.首先,zip容器文件有子目录,在一个"IDX"里面有我需要的图像.我将zip文件内容解压缩到目录没有问题.我的zip文件非常庞大,就像在GB中一样巨大,所以我希望能够打开文件并拉出图像,因为我一次一个地迭代它们来处理它们.
完成后我只关闭zip文件.这些图像实际上存放在数据库中.
有没有人知道如何使用,希望,免费工具或内置api?此过程将在Windows计算机上完成.
谢谢!
我正在 C# 中创建一个文件夹,我希望在创建后立即将其压缩。我环顾四周(如何压缩文件夹),(http://dotnetzip.codeplex.com/)但到目前为止还没有运气。我有点担心使用 dotnetzip,因为它的最后一个版本是 5 年前。
dotnetzip 在 Visual Studio 2015 中是否仍然相关,或者是否有更现代的方式在 C# 中压缩文件夹而不使用包?
这就是我复制文件夹的方式;
private static void CopyDirectory(string SourcePath, string DestinationPath, bool overwriteexisting)
{
SourcePath = SourcePath.EndsWith(@"\") ? SourcePath : SourcePath + @"\";
DestinationPath = DestinationPath.EndsWith(@"\") ? DestinationPath : DestinationPath + @"\";
if (Directory.Exists(SourcePath))
{
if (Directory.Exists(DestinationPath) == false)
Directory.CreateDirectory(DestinationPath);
foreach (string fls in Directory.GetFiles(SourcePath))
{
FileInfo flinfo = new FileInfo(fls);
flinfo.CopyTo(DestinationPath + flinfo.Name, overwriteexisting);
}
foreach (string drs in Directory.GetDirectories(SourcePath))
{
DirectoryInfo drinfo = …Run Code Online (Sandbox Code Playgroud) 我在使用 Shell32 CopyHere 方法时遇到了一些问题。
首先,我从这个页面工作:http : //www.codeproject.com/Tips/257193/Easily-zip-unzip-files-using-Windows-Shell32
我希望用 C# 重写类似的东西,因为我几乎没有在 VB.NET 中工作过。
我正在传递一个输入目录,其中有一个文本文件作为我的测试。在底部,只是为了让我看到它实际上是在抓取我的文件,我写了 input.Items() 的计数,我得到了 1,所以我认为它看到的是我的目录,其中包含一个文本文件。但是,虽然我的代码创建了空的 zip 文件就好了,并且至少从控制台输出似乎正在抓取我的文件,但它实际上并没有将任何内容复制到 zip 文件中。不会抛出任何错误,就好像什么都没发生一样。
static void Zip(string i, string o)
{
//Turn relative paths into full paths for Shell.NameSpace method.
string ifp = Path.GetFullPath(i);
string ofp = Path.GetFullPath(o);
//Validate parameters.
if (!(Directory.Exists(ifp)) || (Directory.GetFiles(ifp).Count() <= 0))
throw new Exception("Input directory " + i + " was invalid. " + i + " was either empty or doesn't exist.");
string ext = ofp.Substring(ofp.Length - …Run Code Online (Sandbox Code Playgroud)