File permission problem

Apr 22, 2009 at 2:12 PM
Hi,
I've used DotNetZip v 1.7 in a .NET 2.0 application that store zip file in a share folder.

Occasionally the zip created is not accessible... :(
The properties of that zip contain only the General Tab.
The Security Tab is not present and the client that access on this share folder can see this zip but access is denied...

Anyone have this problem?

The code that I used is:

Using zip As New Ionic.Zip.ZipFile(Me.CmpName)
                        With zip
                            .Password = Me.GetPwd

                            For Each s As String In My.Tools.Cmp.CmpFileList
                                If s.Contains("*") Then
                                    Dim dirInfo As New System.IO.DirectoryInfo(Me.WorkPath)
                                    For Each fInfo As FileInfo In dirInfo.GetFiles(s)
                                        .AddFile(fInfo.FullName, "")
                                    Next
                                Else
                                    If File.Exists(FilePath.PATH_Combine(Me.WorkPath, s)) Then
                                        .AddFile(FilePath.PATH_Combine(Me.WorkPath, s), "")
                                    End If
                                End If
                            Next

                            Try
                                .Save()
                                FilePath.EraseFile(BakFile)
                            Catch ex As System.Exception
                                Throw New CmpCloseDotZipException(ex.Message)
                            Finally
                                If File.Exists(BakFile) Then
                                    File.Delete(Me.CmpName)
                                    File.Move(BakFile, Me.CmpName)
                                End If
                            End Try
                        End With
                    End Using


Thanks!

Dario
Apr 22, 2009 at 4:23 PM
I have found the problem.

If I pass a FileStream to Save Method the permission are ok...otherwise... not.

So... 

Using fs as New FileStream(Me.CmpName, FileMode.CreateNew)
Using zip As New Ionic.Zip.ZipFile()
                        With zip
                            .Password = Me.GetPwd

                            For Each s As String In My.Tools.Cmp.CmpFileList
                                If s.Contains("*") Then
                                    Dim dirInfo As New System.IO.DirectoryInfo(Me.WorkPath)
                                    For Each fInfo As FileInfo In dirInfo.GetFiles(s)
                                        .AddFile(fInfo.FullName, "")
                                    Next
                                Else
                                    If File.Exists(FilePath.PATH_Combine(Me.WorkPath, s)) Then
                                        .AddFile(FilePath.PATH_Combine(Me.WorkPath, s), "")
                                    End If
                                End If
                            Next

                            Try
                                .Save(fs)
                                FilePath.EraseFile(BakFile)
                            Catch ex As System.Exception
                                Throw New CmpCloseDotZipException(ex.Message)
                            Finally
                                If File.Exists(BakFile) Then
                                    File.Delete(Me.CmpName)
                                    File.Move(BakFile, Me.CmpName)
                                End If
                            End Try
                        End With
                    End Using
End Using

but... Why?

Thanks!

Dario
Coordinator
Apr 28, 2009 at 6:39 PM
This discussion has been copied to a work item. Click here to go to the work item and continue the discussion.