Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 离子压缩文件夹结构_Xml_Vb.net_Zip - Fatal编程技术网

Xml 离子压缩文件夹结构

Xml 离子压缩文件夹结构,xml,vb.net,zip,Xml,Vb.net,Zip,我正在尝试向我的程序中添加一些压缩代码,但是,我似乎无法获得正确的文件夹结构 我希望文件夹如下所示: Root ( -subfolder1 -subfolder2 individual file individual file individual file) 因此,独立文件将位于zip的根文件夹中,我添加的文件夹将成为根文件夹的子文件夹。我的代码在下面 Using zip As New ZipFile() For Each item As System.

我正在尝试向我的程序中添加一些压缩代码,但是,我似乎无法获得正确的文件夹结构

我希望文件夹如下所示:

Root (
   -subfolder1
   -subfolder2
   individual file
   individual file
   individual file)
因此,独立文件将位于zip的根文件夹中,我添加的文件夹将成为根文件夹的子文件夹。我的代码在下面

Using zip As New ZipFile()
    For Each item As System.Xml.XmlNode In Source
        If item.InnerText.Contains(".") Then
            zip.AddFile(item.InnerText)
        Else
            zip.AddDirectory(item.InnerText, GetLastDirName(item.InnerText))
        End If
    Next

    For Each item As System.Xml.XmlNode In Destin
        Dim path As String = item.InnerText
        zip.Save(path.Replace(".zip", "") & "_Archive_" & DateString & ".zip")
    Next
End Using
但是,
zip.addfile(item.innertext)
行将各个文件添加到完整路径中。因此,如果文件是
C:\Pictures\image.jpg
,它将与所有子文件夹一样显示在zip文件中

我也尝试过类似于
zip.addfile(item.innertext,“individual files”)
的方法来为单个文件创建一个文件夹……但是,我希望这些文件存储在根目录中


有什么建议吗?

如果您查看AddFile方法的文档,可以传入两个参数:

  • 文件名
  • 存档中的目录路径
  • Ionic文件规定,对于第二个参数,规则如下:

    指定一个目录路径,用于覆盖目录中的任何路径 文件名。此路径可能与中的实际目录对应,也可能不对应 当前文件系统。如果zip中的文件更晚 已提取,这是用于提取文件的路径。传递空值 (VB中无任何内容)将使用文件名上的路径(如果有)。通过 空字符串(“”)将在 档案馆

    来源(http://dotnetzip.herobo.com/DNZHelp/html/202e1fb5-8891-888f-8e91-1340f7cd80c9.htm)

    这意味着,在上面的代码中,仅传入第一个参数(文件名),将使用要添加的文件的完整路径。将您想要的路径添加到AddFile方法中作为第二个参数,就可以开始了