限制用户上传包含文件夹的zip文件

时间:2014-04-07 10:59:43

标签: c# asp.net

我有一个文件上传控件。 我限制用户只上传zip文件。 我使用的命名空间是 Ionic.Zip; 我还想检查该zip文件是否包含文件夹。 我必须限制用户不上传带有文件夹的zipfile。 我可以查看zip文件中的文件数量,如

using (ZipFile zip = ZipFile.Read(file_path))
{
    if (zip.Count < 5)
    {
    }

我不知道如何检查

中的文件夹

任何人都可以帮助我。 提前谢谢

2 个答案:

答案 0 :(得分:2)

您可以迭代您的zip对象的ZipEntries - ZipEntry对象包含IsDirectory属性。

foreach(var entry in zip)
{
    if(entry.IsDirectory)
    {
        //your stuff
    }
}

答案 1 :(得分:2)

void Main()
{
var isGood=false;

    using (ZipFile zip = new ZipFile(@"c:\\1.zip"))
 {
     for (var i=0;i<zip.Count;i++)
     if (zip[i].Attributes==FileAttributes.Directory) 
      {
       isGood=false;
       break;
      }

 }

 if (isGood) Console.WriteLine ("ok");
 else
 Console.WriteLine ("error");
}

// Define other methods and classes here

编辑:

您创建此zip文件的方式似乎存在问题。

我从您发送给我的文件中提取了文件并创建了新的zip :(名为3.zip):

enter image description here

正如您所看到的 - 代码有效:

enter image description here

所以我猜这个dll不够强大,无法识别边缘格式