码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2016-06-15 12:51:25      阅读:1156      评论:0      收藏:0      [点我收藏+]

标签:c#知识点   文件压缩、解压   文件重名命   

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


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

技术分享

解压后是这样的,每个录音有一个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啦。


整体界面图:

技术分享

技术分享

解压后的文件是这样的

技术分享

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

本文出自 “学习日记” 博客,请务必保留此出处http://wuqiang265.blog.51cto.com/4718310/1789418

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

标签:c#知识点   文件压缩、解压   文件重名命   

原文地址:http://wuqiang265.blog.51cto.com/4718310/1789418

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!