中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • C#技術積累(解壓tar文件,解析xml,重命名文件,刪除文件)

C#技術積累(解壓tar文件,解析xml,重命名文件,刪除文件)

發布時間:2020-07-24 00:38:36 來源:網絡 閱讀:1087 作者:wuqiang265 欄目:開發技術

由于業務需要最近寫了個小程序,拿來分享:


先說背景,我呼叫中心系統管理,每周會導出一批錄音文件給客戶質檢。錄音是直接從服務器下載拷貝的,一批錄音有上千條,而且原始導出的錄音有點 ‘二’無法讓人摸清來龍去脈。導出來是這樣

C#技術積累(解壓tar文件,解析xml,重命名文件,刪除文件)

解壓后是這樣的,每個錄音有一個XML的解釋說明文件,文件名和錄音文件名一樣。這些文件名感覺上是用時間戳堆出來的。

C#技術積累(解壓tar文件,解析xml,重命名文件,刪除文件)

XML的解釋說明文件里有callID,來電號碼,來電時間等N多信息。客戶要求將所有的錄音文件壓縮一個包,且文件名用來電號碼+時間命名,這樣方便查看。

背景需求完畢。

分析解決方案:首先tar是Linux下的壓縮包,需要解壓,而且是批量處理,然后讀取xml的文檔信息,將來電號碼和來電時間提取出來組成新的文件名,然后將原錄音文件重新命名,也是批量處理。

分析完畢。


一開始想用Python(最近在學習的,還不熟)解決,放棄;用C++也是二把刀,怕趕不上時間;最后還是用了C#做個簡單的小程序吧,畢竟還是熟悉的快一些。


從網上下載了DLL文件‘SharpZipLib.dll’,這里面包含了zip,rar,tar等壓縮和解壓縮的很多東東,感謝提供這個東東的。


這里的代碼網上有很多,隨便搜搜可以看到~~~~


解讀XML文件的信息,C#的system.xml是很好的東東。

 public static recordingInfo GetRecordingInfo(string xmlFileName)

        {

            recordingInfo rdInfo=new recordingInfo();

            string content = string.Empty;

            XmlDocument xmlDoc = new XmlDocument();

            try

            {

                xmlDoc.Load(xmlFileName); //加載XML文檔

                XmlNode node = xmlDoc.ChildNodes[1];

                //來電時間

                rdInfo.STime = node.Attributes["starttime"].Value.Substring(0, 19);

                //錄音文件名

                rdInfo.OldName = node.Attributes["filename"].Value;

                //來電號碼

                rdInfo.ANI = node.ChildNodes[0].ChildNodes[3].ChildNodes[7].InnerText;

            }

            catch (Exception ex)

            {

                throw ex; //這里可以定義你自己的異常處理

            }

            return rdInfo;

        }


recordingInfo是我對錄音文件的一個類:

  public class recordingInfo

    {

        public string OldName { get; set; }

        public string ANI { get; set; }

        public string STime { get; set; }

    }

然后就是文件重名命后和刪除原文件了,先來刪除文件的,這個簡單:

       public bool DeleteFiles(string fileName)

        {

            if (File.Exists(fileName))

            {

                File.Delete(fileName);

                return true;

            }

            return false;

        }

文件重名命,第一次使用才知道C#的File類沒有rename這個方法,簡直哭死人啦。網絡就是個神奇的東西,你不需要記住,只要會檢索,總會在某個地方有你需要的:引用這兩個

using Microsoft.VisualBasic;

using Microsoft.VisualBasic.Devices;

下面兩句話解決重命名,哈哈哈,你就笑吧,突然想你昨天看到的一句話,“程序員為什么喜歡寫代碼,因為那是在創造一個生命,給他賦予程序智能~”

                Computer MyComputer = new Computer();


                MyComputer.FileSystem.RenameFile(FileName, newName);

幾個關鍵點都解決了,剩下的只需要組織代碼,將整個邏輯整理得當就OK啦。


整體界面圖:

C#技術積累(解壓tar文件,解析xml,重命名文件,刪除文件)

C#技術積累(解壓tar文件,解析xml,重命名文件,刪除文件)

解壓后的文件是這樣的

C#技術積累(解壓tar文件,解析xml,重命名文件,刪除文件)

完畢,測試幾遍可以使用。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昭苏县| 东明县| 青川县| 手机| 通渭县| 洞口县| 祁东县| 金塔县| 保康县| 若羌县| 建始县| 合川市| 黄大仙区| 敖汉旗| 和平县| 广南县| 河北区| 磴口县| 阿城市| 开原市| 栾川县| 淮南市| 祁门县| 金坛市| 长岭县| 莱阳市| 舞钢市| 林西县| 丰台区| 梓潼县| 涟水县| 塔城市| 青阳县| 南皮县| 开江县| 诸城市| 托里县| 东山县| 景洪市| 抚顺市| 美姑县|