2013-07-08 22 views
0

下面是一个代码示例,用于压缩目录中7天以前的文件,并创建一个具有相同名称的压缩文件,然后删除现有的文件。在这个例子中,我们将使用.txt文件,但你可以改变它以适应。如何使用ZipSharpLib压缩文件并使用现有文件名作为新的Zip文件名(asp.net VB)

例如

myfile1.txt ---> myfile1.zip --->删除myfile1.txt
myfile2.txt ---> myfile2.zip --->删除myfile2.txt

Dim NumDays As Integer = 7 
Dim reportDbPath As String = Directory.GetParent(System.Reflection.Assembly.GetExecutingAssembly().Location).FullName() & "\report" 
Dim fileEntries As String() = Directory.GetFiles(reportDbPath) 
For Each fileName In fileEntries 
    If Path.GetExtension(fileName) = ".txt" AndAlso Directory.GetCreationTime(fileName) < DateAdd(DateInterval.Day, -NumDays, Now()) Then 
     Dim fi As New FileInfo(fileName) 
     Dim archiveFileName As String = Path.GetFileNameWithoutExtension(fileName) & ".zip" 
     Dim fsOut As FileStream = File.Create(Path.Combine(reportDbPath, archiveFileName)) 
     Dim zipStream As New ZipOutputStream(fsOut) 
     zipStream.SetLevel(9) 
     Dim newEntry As New ZipEntry(ZipEntry.CleanName(Path.GetFileName(fileName))) 
     newEntry.DateTime = fi.LastWriteTime 
     newEntry.Size = fi.Length 
     zipStream.PutNextEntry(newEntry) 
     Dim buffer As Byte() = New Byte(4095) {} 
     Using streamReader As FileStream = File.OpenRead(fileName) 
      StreamUtils.Copy(streamReader, zipStream, buffer) 
     End Using 
     zipStream.CloseEntry() 
     zipStream.IsStreamOwner = True 
     zipStream.Close() 
     File.Delete(fileName) 
    End If 
Next fileName 

希望它是有益的!

+0

你有什么问题。你在制作压缩文件,命名压缩文件,删除文本文件等方面遇到麻烦吗? –

+0

你可以发布你的代码来压缩文件吗? –

+0

究竟是什么问题? (除了缺少的删除部分)。我测试了它,它工作正常。它创建单独的文件。 –

回答

0

已经有了正确的代码,所以问题不需要回答 - 转换成HOWTO

相关问题