首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用ZipSharpLib压缩文件并使用现有文件名作为新的压缩文件名(asp.net VB)

如何使用ZipSharpLib压缩文件并使用现有文件名作为新的压缩文件名(asp.net VB)
EN

Stack Overflow用户
提问于 2013-07-08 23:56:08
回答 1查看 547关注 0票数 0

下面是一个代码示例,用于在一个目录中压缩超过7天的文件,并创建一个同名的压缩文件,然后删除现有文件。在本例中,我们将使用.txt文件,但您可以根据需要对其进行更改。

例如:

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

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

代码语言:javascript
运行
复制
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

希望它是有用的!

EN

回答 1

Stack Overflow用户

发布于 2013-07-09 00:50:29

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17530986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档