C#技术积累(解压tar文件,解析xml,重命名文件,删除文件)-创新互联

由于业务需要最近写了个小程序,拿来分享:

牡丹网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联成立与2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。

先说背景,我呼叫中心系统管理,每周会导出一批录音文件给客户质检。录音是直接从服务器下载拷贝的,一批录音有上千条,而且原始导出的录音有点 ‘二’无法让人摸清来龙去脉。导出来是这样

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,重命名文件,删除文件)

完毕,测试几遍可以使用。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站标题:C#技术积累(解压tar文件,解析xml,重命名文件,删除文件)-创新互联
本文地址:http://scyanting.com/article/desjdc.html