本技術(shù)涉及計(jì)算機(jī),尤其涉及一種壓縮文件的解壓方法和裝置。
背景技術(shù):
1、現(xiàn)有技術(shù)中,對壓縮文件進(jìn)行解壓,通常需要將待解壓的壓縮文件發(fā)送至服務(wù)器,通過服務(wù)器運(yùn)行解壓代碼,以此來實(shí)現(xiàn)對壓縮文件的解壓。并且,在完成解壓后,終端再從服務(wù)器下載解壓獲得的解壓文件,以供用戶使用。
2、然而,上述解壓方法中,文件解壓的效率和安全性較低。
技術(shù)實(shí)現(xiàn)思路
1、鑒于此,為解決上述部分或全部技術(shù)問題,本技術(shù)實(shí)施例提供一種壓縮文件的解壓方法和裝置。
2、第一方面,本技術(shù)實(shí)施例提供一種壓縮文件的解壓方法,所述方法包括:
3、獲取第一代碼,其中,所述第一代碼至少部分不支持在小程序上運(yùn)行,并且,所述第一代碼用于解壓所述壓縮文件;
4、將所述第一代碼編譯為第二代碼,其中,所述第二代碼支持在所述小程序上運(yùn)行;
5、獲取所述壓縮文件;
6、在所述小程序中運(yùn)行所述第二代碼,以解壓所述壓縮文件。
7、在一個(gè)可能的實(shí)施方式中,所述在所述小程序中運(yùn)行所述第二代碼,以解壓所述壓縮文件,包括:
8、將所述壓縮文件確定為目標(biāo)文件,以及執(zhí)行如下解壓步驟:在所述小程序中運(yùn)行所述第二代碼,以解壓所述目標(biāo)文件;確定解壓獲得的解壓文件中,是否包括壓縮文件;在所述解壓文件中不包括所述壓縮文件的情況下,確定解壓完成;
9、在所述解壓文件中包括所述壓縮文件的情況下,將所述解壓文件中的所述壓縮文件確定為目標(biāo)文件;基于所確定的目標(biāo)文件執(zhí)行所述解壓步驟。
10、在一個(gè)可能的實(shí)施方式中,所述解壓所述目標(biāo)文件,包括:
11、將所述目標(biāo)文件存儲(chǔ)到內(nèi)存中,以通過內(nèi)存對所述目標(biāo)文件進(jìn)行解壓;
12、在通過內(nèi)存對所述目標(biāo)文件完成解壓后,將所述目標(biāo)文件轉(zhuǎn)存到堆棧中,以及回收用于存儲(chǔ)所述目標(biāo)文件的內(nèi)存。
13、在一個(gè)可能的實(shí)施方式中,所述獲取所述壓縮文件,包括:
14、獲取所述壓縮文件的二進(jìn)制數(shù)據(jù)流;
15、將所述二進(jìn)制數(shù)據(jù)流轉(zhuǎn)換為預(yù)設(shè)數(shù)組類型的對象;
16、將所述對象存儲(chǔ)于內(nèi)存中;以及
17、所述在所述小程序中運(yùn)行所述第二代碼,以解壓所述目標(biāo)文件,包括:
18、在所述小程序中運(yùn)行所述第二代碼,讀取所述內(nèi)存中的所述壓縮文件對應(yīng)的對象,以解壓所述目標(biāo)文件。
19、在一個(gè)可能的實(shí)施方式中,所述將所述第一代碼編譯為第二代碼,包括:
20、采用目標(biāo)編譯選項(xiàng),將所述第一代碼編譯為第二代碼;
21、其中,所述目標(biāo)編譯選項(xiàng)用于執(zhí)行以下至少一項(xiàng)操作:設(shè)置編譯速度、控制共享緩沖區(qū)、控制內(nèi)存消耗。
22、在一個(gè)可能的實(shí)施方式中,在所述小程序中運(yùn)行所述第二代碼,以解壓所述壓縮文件之后,所述方法還包括:
23、將解壓得到的解壓文件存儲(chǔ)至云端。
24、在一個(gè)可能的實(shí)施方式中,在所述將解壓得到的解壓文件存儲(chǔ)至云端之后,所述方法還包括:
25、檢測對所述解壓文件執(zhí)行的查看操作;
26、在檢測到所述查看操作的情況下,顯示本地存儲(chǔ)的所述解壓文件,或者,顯示云端存儲(chǔ)的所述解壓文件。
27、在一個(gè)可能的實(shí)施方式中,采用文件樹的節(jié)點(diǎn)表示所述壓縮文件中的文件的第一文件數(shù)據(jù);每個(gè)所述第一文件數(shù)據(jù)關(guān)聯(lián)所述壓縮文件中的相應(yīng)文件的第二文件數(shù)據(jù),所述第一文件數(shù)據(jù)存儲(chǔ)于內(nèi)存中,所述第一文件數(shù)據(jù)為文件標(biāo)識(shí);所述第二文件數(shù)據(jù)經(jīng)由解壓獲得,并且,所述第二文件數(shù)據(jù)存儲(chǔ)于堆棧中。
28、第二方面,本技術(shù)實(shí)施例提供一種壓縮文件的解壓裝置,所述裝置包括:
29、第一獲取單元,用于獲取第一代碼,其中,所述第一代碼至少部分不支持在小程序上運(yùn)行,并且,所述第一代碼用于解壓所述壓縮文件;
30、編譯單元,用于將所述第一代碼編譯為第二代碼,其中,所述第二代碼支持在所述小程序上運(yùn)行;
31、第二獲取單元,用于獲取所述壓縮文件;
32、解壓單元,用于在所述小程序中運(yùn)行所述第二代碼,以解壓所述壓縮文件。
33、在一個(gè)可能的實(shí)施方式中,所述在所述小程序中運(yùn)行所述第二代碼,以解壓所述壓縮文件,包括:
34、將所述壓縮文件確定為目標(biāo)文件,以及執(zhí)行如下解壓步驟:在所述小程序中運(yùn)行所述第二代碼,以解壓所述目標(biāo)文件;確定解壓獲得的解壓文件中,是否包括壓縮文件;在所述解壓文件中不包括所述壓縮文件的情況下,確定解壓完成;
35、在所述解壓文件中包括所述壓縮文件的情況下,將所述解壓文件中的所述壓縮文件確定為目標(biāo)文件;基于所確定的目標(biāo)文件執(zhí)行所述解壓步驟。
36、在一個(gè)可能的實(shí)施方式中,所述解壓所述目標(biāo)文件,包括:
37、將所述目標(biāo)文件存儲(chǔ)到內(nèi)存中,以通過內(nèi)存對所述目標(biāo)文件進(jìn)行解壓;
38、在通過內(nèi)存對所述目標(biāo)文件完成解壓后,將所述目標(biāo)文件轉(zhuǎn)存到堆棧中,以及回收用于存儲(chǔ)所述目標(biāo)文件的內(nèi)存。
39、在一個(gè)可能的實(shí)施方式中,所述獲取所述壓縮文件,包括:
40、獲取所述壓縮文件的二進(jìn)制數(shù)據(jù)流;
41、將所述二進(jìn)制數(shù)據(jù)流轉(zhuǎn)換為預(yù)設(shè)數(shù)組類型的對象;
42、將所述對象存儲(chǔ)于內(nèi)存中;以及
43、所述在所述小程序中運(yùn)行所述第二代碼,以解壓所述目標(biāo)文件,包括:
44、在所述小程序中運(yùn)行所述第二代碼,讀取所述內(nèi)存中的所述壓縮文件對應(yīng)的對象,以解壓所述目標(biāo)文件。
45、在一個(gè)可能的實(shí)施方式中,所述將所述第一代碼編譯為第二代碼,包括:
46、采用目標(biāo)編譯選項(xiàng),將所述第一代碼編譯為第二代碼;
47、其中,所述目標(biāo)編譯選項(xiàng)用于執(zhí)行以下至少一項(xiàng)操作:設(shè)置編譯速度、控制共享緩沖區(qū)、控制內(nèi)存消耗。
48、在一個(gè)可能的實(shí)施方式中,在所述小程序中運(yùn)行所述第二代碼,以解壓所述壓縮文件之后,所述裝置還包括:
49、存儲(chǔ)單元,用于將解壓得到的解壓文件存儲(chǔ)至云端。
50、在一個(gè)可能的實(shí)施方式中,在所述將解壓得到的解壓文件存儲(chǔ)至云端之后,所述裝置還包括:
51、檢測單元,用于檢測對所述解壓文件執(zhí)行的查看操作;
52、顯示單元,用于在檢測到所述查看操作的情況下,顯示本地存儲(chǔ)的所述解壓文件,或者,顯示云端存儲(chǔ)的所述解壓文件。
53、在一個(gè)可能的實(shí)施方式中,采用文件樹的節(jié)點(diǎn)表示所述壓縮文件中的文件的第一文件數(shù)據(jù);每個(gè)所述第一文件數(shù)據(jù)關(guān)聯(lián)所述壓縮文件中的相應(yīng)文件的第二文件數(shù)據(jù),所述第一文件數(shù)據(jù)存儲(chǔ)于內(nèi)存中,所述第一文件數(shù)據(jù)為文件標(biāo)識(shí);所述第二文件數(shù)據(jù)經(jīng)由解壓獲得,并且,所述第二文件數(shù)據(jù)存儲(chǔ)于堆棧中。
54、第三方面,本技術(shù)實(shí)施例提供一種電子設(shè)備,包括:
55、存儲(chǔ)器,用于存儲(chǔ)計(jì)算機(jī)程序;
56、處理器,用于執(zhí)行所述存儲(chǔ)器中存儲(chǔ)的計(jì)算機(jī)程序,且所述計(jì)算機(jī)程序被執(zhí)行時(shí),實(shí)現(xiàn)本技術(shù)上述第一方面的壓縮文件的解壓方法中任一實(shí)施例的方法。
57、第四方面,本技術(shù)實(shí)施例提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí),實(shí)現(xiàn)如上述第一方面的壓縮文件的解壓方法中任一實(shí)施例的方法。
58、第五方面,本技術(shù)實(shí)施例提供一種計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括計(jì)算機(jī)可讀代碼,當(dāng)所述計(jì)算機(jī)可讀代碼在設(shè)備上運(yùn)行時(shí),使得該設(shè)備中的處理器實(shí)現(xiàn)如上述第一方面的壓縮文件的解壓方法中任一實(shí)施例的方法。
59、本技術(shù)實(shí)施例提供的壓縮文件的解壓方法,可以獲取第一代碼,其中,所述第一代碼至少部分不支持在小程序上運(yùn)行,并且,所述第一代碼用于解壓所述壓縮文件,之后,將所述第一代碼編譯為第二代碼,其中,所述第二代碼支持在所述小程序上運(yùn)行,然后,獲取所述壓縮文件,隨后,在所述小程序中運(yùn)行所述第二代碼,以解壓所述壓縮文件。由此,可以在小程序前端運(yùn)行用于解壓壓縮文件的代碼,無需進(jìn)行文件上傳和下載,減少了網(wǎng)絡(luò)傳輸?shù)臅r(shí)間,減輕了后端服務(wù)器的壓力,此外,還可以避免敏感文件傳輸中的數(shù)據(jù)泄露和文件損壞等問題,從而提高了文件解壓的效率和安全性。