午夜视频在线观看区二区-午夜视频在线观看视频-午夜视频在线观看视频在线观看-午夜视频在线观看完整高清在线-午夜视频在线观看网站-午夜视频在线观看亚洲天堂

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

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

admin
2025年2月13日 17:15 本文熱度 391
: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);//文件名后綴

//如果解壓目錄不存在則創建

    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;

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

    ZipEntry theEntry = null;

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

    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的壓縮文件解壓到指定的目錄(本機必須安裝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 = "請先安裝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 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 91国内精品在线 | 国产精品一级毛片无码老人 | 99亚洲男女激情在线观看 | 91精品一区二区三区在线播放 | 黄色av电影在线观看 | 国产在线观看18 | 国产成人综合色在线观看网站 | 国产一区二区三区夜色 | 加勒比hezyo无码专区 | 国产日韩亚洲欧美aap | 国产精品午夜久久久 | 国产欧美日韩在线中文一区 | a级毛片高清免费视频播放 a级毛片高清免费视频就看 | 丰满的少妇xxxxx野外 | 91一级特黄大片 | 果冻国产成人av高清在线 | 国产欧美日韩免费 | 国产女人乱人伦精品一区二区 | 高潮喷水在线观看免费 | 国精产品一品二品国在线 | 国产黄色视频在线 | 国产成人av | 国产91极品福利手机观看 | 91日韩精品久久久久精品无码 | 国产一级毛片一区二区三区 | av无码精品久久 | 国产无码综合 | 91成人国产综合久久精品九色 | 国产精品视频一区无码 | 高朝久久久久久久久久 | 国产一卡2卡3卡4卡网站免费 | 国产精品va在线观看无码不卡 | 丰满少妇性xxxxx做受 | 国产精品亚洲av | 精品国产aⅴ一区二区三区4区 | 成在人线av无码免费高潮喷水 | 国产精品午夜自在在线精品 | 精品无码av无码专区成人毛片 | 国产高清视频在线一区二区三区 | 成人毛片在线观看观看 | 91大神在线观看精品无码 |