Imports System.IO Imports java.io 'C:/WINNT/Microsoft.NET/Framework/v2.0.50727/vjslib.dll Imports java.util ''' <summary> ''' 解壓(Zip) ''' </summary> ''' <param name="ZipFile">需要解壓的ZIP文件</param> ''' <param name="OutputDirectory">輸入目錄</param> ''' <remarks>2010-01-30</remarks> Private Shared Sub Decompress(ByVal ZipFile As String, ByVal OutputDirectory As String) Dim zipIns As New java.io.File(ZipFile) Dim directoryIns As New java.io.File(OutputDirectory) '判斷壓縮文件是否存在 '如果不存在的場合,則退出 If zipIns.exists = False Then Return End If zipIns = Nothing '判斷輸出目錄是否是目錄 '如果不是目錄的場合,再進行其它判斷 If directoryIns.isDirectory = False Then '判斷輸出目錄的類型是否是一個文件 '如果不是文件的場合 If directoryIns.isFile = False Then Directory.CreateDirectory(OutputDirectory) '如果輸出目錄是一個存在的文件的場合,則退出 Else Return End If End If directoryIns = Nothing Const BUFFER As Integer = 2048 '每次讀取文件數據的大小 Dim fileInput As FileInputStream '文件流 Dim inputStream As zip.ZipInputStream '輸入流 Dim entry As zip.ZipEntry '壓縮數據入口實例 Dim outputStream As FileOutputStream '輸出流 Dim outputDir As String '輸出目錄 Dim fileName As String '文件名 Dim folderSeparator As String '文件夾分隔符 Dim folderSeparatorInZipFile As String '壓縮文件中的文件夾分隔符 Dim dataCount As Integer '數據總數 Dim fileData(BUFFER) As SByte '用於存放已讀取的文件數據 '取得文件夾分隔符 folderSeparator = java.io.File.separator folderSeparatorInZipFile = "/" '判斷輸出目錄是否是一個完整的目錄 '如果不是的場合,則編輯 outputDir = OutputDirectory If outputDir.Substring(outputDir.Length - 1, 1) <> folderSeparator Then outputDir += folderSeparator End If '初始化壓縮文件輸入流 fileInput = New FileInputStream(ZipFile) inputStream = New zip.ZipInputStream(New BufferedInputStream(fileInput)) '循環解壓壓縮文件中每個文件 Do '取得下一個壓縮數據的入口 entry = inputStream.getNextEntry() If entry Is Nothing Then Exit Do End If '判斷當前壓縮數據是文件還是文件夾 '如果是文件的場合 If entry.isDirectory = False Then '取得文件名 fileName = entry.getName() fileName = fileName.Substring(fileName.LastIndexOf(folderSeparator) + 1) '如果是文件夾的場合 Else '創建新文件夾 fileName = entry.getName() fileName = fileName.Replace(folderSeparator, folderSeparatorInZipFile) Directory.CreateDirectory(outputDir + fileName) Continue Do End If outputStream = New java.io.FileOutputStream(outputDir & fileName) '初始化取數據用的變量 Array.Clear(fileData, 0, fileData.Length) dataCount = 0 '循環讀取當前需要解壓的文件數據 Do '讀取文件數據 dataCount = inputStream.read(fileData, 0, BUFFER) If dataCount = -1 Then Exit Do End If '將已讀取的文件數據寫入輸出目錄中 outputStream.write(fileData, 0, dataCount) Loop '關閉輸出流 outputStream.flush() outputStream.close() Loop '關閉輸入流和文件流 inputStream.closeEntry() inputStream.close() fileInput.close() End Sub
1 枚舉好用嗎? 數據字典型字段,枚舉比Integer好: 限定值,只能賦值枚舉的那幾個實例,不能像Integer隨便輸,保存和查詢的時候特別有用 含義明確,使用時不需要去查數據字典 顯示值跟存儲值直接映射,不需要手動轉換,比如1在頁面上
本文分享自華爲雲社區《10分鐘搞懂各種內存溢出案例!!(含完整源碼,建議收藏)》,作者:冰 河。 作爲程序員,多多少少都會遇到一些內存溢出的場景,如果你還沒遇到,說明你工作的年限可能比較短,或者你根本就是個假程序員!哈哈,開個玩笑。今天,我
Ai technology 前言 AppBuilder上線了低代碼製作組件功能,可以通過工作流的方式構建自定義組件,完成簡單Agent無法完成的複雜功能,使得生成的文本更加定製化,
最近在刷一些問題的時候看到有下面一個問題 上面問的是當輸入的字符串爲什麼的時候返回 True 總結 在做題目的時候,第一次還做錯了。 這是因爲解答這個題目的時間只有 3 分鐘,沒有自己看題目 後來拿着程序跑了下。 p
簡介: 搶紅包是我們生活常用的社交功能, 這個功能最主要的特點就是用戶的併發請求高, 在系統設計上, 可以使用非常多的辦法來扛住用戶的高併發請求, 在本文中簡要介紹使用Redis緩存中間件來實現搶紅包算法, Redis是一個在內存中基
字符串是 Java 程序中最常用的數據結構之一。在 Java 中 String 類已經重載了"+",字符串可以直接使用"+"進行連接,也可以用StringBuilder/StringBuffer(StringBuilder是J2SE5 及以
Java 平臺提供了兩種類型的字符串操作方式:String 和 StringBuffer/StringBuilder,它們都可以儲存和操作字符串,區別如下: String 是隻讀字符串,也就意味着 String 引用的字符串內容是不能被改
1 概述 通道是Golang提供的一種基本類型,它可以實現在協程之間的單向通信和雙向通信、發送和接收數據、以及協程同步。 channel的本質是一個隊列,遵循先進先出原則。channel是線程安全的,在任何給定時間,一個數據被設計爲只有一
簡介 go-python Python提供了豐富的C-API。而C和Go又可以通過cgo無縫集成。所以,直接通過Golang調用libpython,就可以實現Go調Python的功能了。但是過程比較複雜,而go-python提供了針對CPy
雲棲號資訊:【點擊查看更多行業資訊】在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來! 之前本人在找工作面試時在Redis相關問題上可栽了跟頭。在面試前按常規套路準備了一下,比如 Redis 的常用5種數據結構,Redis持久化
雲棲號資訊:【點擊查看更多行業資訊】在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來! 本文要點 即將於 2020 年 9 月發佈的 Java SE 15 將引入“封印類(sealed class)”(JEP 360),並將其作
雲棲號資訊:【點擊查看更多行業資訊】在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來! 簡介 Spring Boot 2.2.0 版本開始引入 JUnit 5 作爲單元測試默認庫,在 Spring Boot 2.2.0 版本之前
Java有8種基本數據類型,每種基本數據類型都提供了一種對應的包裝類型,從 Java 5 開始引入了自動裝箱/拆箱機制,使得二者可以相互轉換。 原始類型: boolean,char,byte,short,int,long,float,do
本文分享自華爲雲社區《MySQL怎樣處理排序⭐️如何優化需要排序的查詢?》,作者:菜菜的後端私房菜。 前言 在MySQL的查詢中常常會用到 order by 和 group by 這兩個關鍵字 它們的相同點是都會對字段進行排序,那查詢語句
free -h total used free shared buff/cache available Mem: 125G 88G