日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

c# 上傳壓縮包(Zip/Rar) 解壓,遍歷文件夾和文件

admin
2025年2月13日 17:15 本文熱度 607
:c# 上傳壓縮包(Zip/Rar) 解壓,遍歷文件夾和文件

/// <summary>

/// 解壓壓縮文件到指定目錄

/// <param name="zipFilePath">壓縮文件路徑</param>

/// <summary>

/// <returns></returns>

public void MuliteImport(string zipFilePath)

{

//解壓文件存放路徑

    string unZipDir = string.Format("{0}/{1}/{2}/{3}", Config.GetValue("AnnexesFile"), "Decompress", LoginUserInfo.Get().userId, DateTime.Now.ToString("yyyyMMdd"));

    string FileEextension = Path.GetExtension(zipFilePath);//文件名后綴

//如果解壓目錄不存在則創(chuàng)建

    if (!Directory.Exists(unZipDir))

    {

        Directory.CreateDirectory(unZipDir);

    }

    if (FileEextension.ToLower() == ".zip")

    {

        Decompress(unZipDir, zipFilePath);

    }

    else if (FileEextension.ToLower() == ".rar")

    {

        DeCompressRar(unZipDir, zipFilePath);

    }

}


#region 解壓縮文件

/// <summary>

/// 解壓zip格式的文件(在工程中引用SharpZipLib)

/// </summary>

/// <param name="unZipDir">解壓文件存放路徑</param>

/// <param name="zipFilePath">壓縮文件路徑</param>

/// <returns></returns>

public void Decompress(string unZipDir, string zipFilePath)

{

    unZipDir = unZipDir + "/zip";

    if (!Directory.Exists(unZipDir))

        Directory.CreateDirectory(unZipDir);//生成解壓目錄

    byte[] data = new byte[2048];

    int size = 2048;

//一個(gè)ZIP文件中的條目,可以理解為壓縮包里面的一個(gè)文件夾/文件

    ZipEntry theEntry = null;

//解壓縮輸出流,從壓縮包中一個(gè)接一個(gè)的讀出文檔。

    using (ZipInputStream inputStream = new ZipInputStream(File.OpenRead(zipFilePath)))

    {

        while ((theEntry = inputStream.GetNextEntry()) != null)

        {

            if (!string.IsNullOrEmpty(theEntry.Name))

            {

                string fileName = Path.Combine(unZipDir, theEntry.Name);

                fileName = fileName.Replace('/', '\\');


                if (fileName.EndsWith("\\"))

                {

                    Directory.CreateDirectory(fileName);

                    ec_library_catalogueEntity catalogue = new ec_library_catalogueEntity();

                    continue;

                }

                using (FileStream streamWriter = File.Create(fileName))

                {

                    while (true)

                    {

                        size = inputStream.Read(data, 0, data.Length);

                        if (size <= 0) break;

                        streamWriter.Write(data, 0, size);

                    }

                    streamWriter.Close();

                }

            }

        }

        inputStream.Close();

    }

}


/// <summary>

/// 獲取winrar的安裝位置

/// </summary>

/// <returns></returns>

public static string ExistsWinRar()

{

    string result = string.Empty;

    string key = @"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe";

    RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(key);

    if (registryKey != null)

    {

        result = registryKey.GetValue("").ToString();

        registryKey.Close();

    }

    return result;

}


/// <summary>

/// 將格式為rar的壓縮文件解壓到指定的目錄(本機(jī)必須安裝winrar解壓軟件)

/// </summary>

/// <param name="unZipDir">解壓后要保存到的目錄</param>

/// <param name="zipFilePath">要解壓rar文件的路徑</param>

/// <returns></returns>

public void DeCompressRar(string unZipDir, string zipFilePath)

{

    var Compressfiles = new List<FileInfo>();

    string winrarPath = ExistsWinRar();

    if (!string.IsNullOrEmpty(winrarPath))

    {

        unZipDir = unZipDir + "/rar";

        if (!Directory.Exists(unZipDir))

            Directory.CreateDirectory(unZipDir);//生成解壓目錄

        string winrarDir = Path.GetDirectoryName(winrarPath);

        string commandOptions = string.Format("x {0} {1} -y", zipFilePath, unZipDir);

        ProcessStartInfo processStartInfo = new ProcessStartInfo();

        processStartInfo.FileName = Path.Combine(winrarDir, "rar.exe");

        processStartInfo.Arguments = commandOptions;

        processStartInfo.WindowStyle = ProcessWindowStyle.Hidden;


        Process process = new Process();

        process.StartInfo = processStartInfo;

        process.StartInfo.UseShellExecute = false;

        process.StartInfo.CreateNoWindow = true;

        process.Start();

        var files = 0;

        while (process.HasExited)

        {

            files++;

        }

        process.WaitForExit();

        process.Close();

        var dir = new DirectoryInfo(unZipDir);

        FindFile(dir, Compressfiles);

    }

    else

    {

//message = "請(qǐng)先安裝winrar程序,再上傳文件";

    }

}


//查找所有文件

public void FindFile(DirectoryInfo di, List<FileInfo> files)

{

    FileInfo[] fis = di.GetFiles();

    files.AddRange(fis);

    DirectoryInfo[] dis = di.GetDirectories();

    for (int j = 0; j < dis.Length; j++)

    {

        FindFile(dis[j], files);

    }

}

#endregion


該文章在 2025/2/13 17:16:39 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 噜噜噜在线视频免费观看 | 亚洲欧美激情小说另类 | 亚洲欧美日韩国产综合点此进入 | 国产日韩欧美高清一区二区三区 | 国产羞羞视频在线观看 | 有码69xx片超频在线97视 | 国产大片91精品免费观看不卡 | 欧洲精品色 | 伊人成色综 | 国产精品自在在线香蕉 | 国产一级特黄a大片免费 | 在线a亚洲视频播放在线观看 | 国产高清在线精品二区一 | 99爱免费观看视频在线 | 中文字幕不卡九十九区 | 国产精品一区二区三区免 | 欧美丰满熟| 日韩a∨精品日韩在线观看 国产女精 | 亚洲视频中文字幕在线不卡 | 911精品国产一区二区在线 | 国产自偷自偷免费一区 | 自在拍在线播放 | 日韩欧美精品一 | 五月婷婷综合在线视频 | 日韩欧美综合欧美日韩综合 | 国产综合亚洲欧美日韩一区二区 | 三级国产短视频在线观看 | 偷国内自拍视频在线观看 | 午夜影院在线看 | 亚洲日韩v| 最新免费影视大全 | 91福利国产在线在 | 亚洲精品成人a | 欧美黑人ⅹxxx猛交 日日狠狠 | 国产秘精品入口欧 | 国产一区二区四五区在线视频 | 中文天堂最新版在线网 | 亚洲欧美在线综合一区 | 欧美一级在线 | 色中色影视 | 最近中文字幕mv第一季歌词 |