C#自动化IO/XML作业

PS:这是我们公司自动化测试留的一个作业,虽然我不是自动化的,但是也做了一下。

Friday, November 28, 2014

?这个也是我根据自动化部门的那次作业自己分析写的,没有写打log的过程,细化的时候再判断再分析吧,主要目的是学习C#。本次的内容是一个窗体程序:遍历指定目录下的文件;将文件信息存入XML中;将XML中的路径结构还原到指定目录下;如果扩展写的话还可以进行数据的备份和还原。

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

using System.Xml;

using System.Text.RegularExpressions;

namespace WindowsFormsApplication2

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

//Blank

}

private void BackUp_Click(object sender, EventArgs e)

{

string path = CheckOutPath.Text.ToString();

//Create XML

CreateXML();

GetAllFiles(path);

}

//Get all files under the path

private void GetAllFiles(string path)

{

DirectoryInfo dir = new DirectoryInfo(@path);

FileInfo[] files = dir.GetFiles();

//Store files into XML

StoreIntoXML(dir.Parent.ToString(), files);

DirectoryInfo[] subDirs = dir.GetDirectories();

//Store subdirs into XML

StoreIntoXML(dir.Parent.ToString(),subDirs);

foreach (DirectoryInfo subDir in subDirs) {

string subPath = subDir.FullName;

GetAllFiles(subPath);

}

}

//Create the XML under the XMLForBackUpPath

private void CreateXML()

{

string XMLPath = XMLForBackUpPath.Text.ToString();

XmlDocument xml = new XmlDocument();

xml.LoadXml("<XML></XML>");

string filePath = Path.Combine(XMLPath,"BackUp.XML");

xml.Save(@filePath);

}

//Store subdirs into XML

private void StoreIntoXML(string parentDir,DirectoryInfo[] subDirs)

{

//Load the XML

string XMLPath = XMLForBackUpPath.Text.ToString();

string filePath = Path.Combine(XMLPath, "BackUp.XML");

XmlDocument xml = new XmlDocument();

xml.Load(@filePath);

//Append the child node to parentDir if possible

foreach (DirectoryInfo subDir in subDirs)

{

XmlElement subNode = xml.CreateElement("FolderNode");

xml.DocumentElement.AppendChild(subNode);

subNode.SetAttribute("type", "folder");

subNode.SetAttribute("path", subDir.FullName.ToString());

subNode.SetAttribute("name", subDir.ToString());

subNode.SetAttribute("parent", parentDir);

}

xml.Save(@filePath);

}

//Store files into XML

private void StoreIntoXML(string parentDir,FileInfo[] files)

{

//Load the XML

string XMLPath = XMLForBackUpPath.Text.ToString();

string filePath = Path.Combine(XMLPath, "BackUp.XML");

XmlDocument xml = new XmlDocument();

xml.Load(@filePath);

//Append the child node to parentDir if possible

foreach (FileInfo file in files)

{

XmlElement subNode = xml.CreateElement("FileNode");

xml.DocumentElement.AppendChild(subNode);

subNode.SetAttribute("type", "file");

subNode.SetAttribute("name", file.ToString());

subNode.SetAttribute("path", file.FullName.ToString());

subNode.SetAttribute("parent",parentDir);

}

xml.Save(@filePath);

}

private void Restore_Click(object sender, EventArgs e)

{

//Restore

string RestorePath=XMLForRestorePath.Text.ToString();

RestoreSolution(RestorePath);

}

//Restore the file system structure from the XML

private void RestoreSolution(string path)

{

XmlDocument XMLForRestore = new XmlDocument();

XMLForRestore.Load(@path);

XmlNodeList nodeLists = XMLForRestore.DocumentElement.ChildNodes;

foreach(XmlElement ele in nodeLists)

{

if (ele.GetAttribute("type") == "folder")

{

if (!System.IO.Directory.Exists(@ele.GetAttribute("path")))

{

Directory.CreateDirectory(@ele.GetAttribute("path"));

}

}

}

}

}

}

时间: 2024-10-10 21:25:33

C#自动化IO/XML作业的相关文章

老男孩python自动化运维作业(二)

拿到要求真不知道怎么写,不能直接写个商城页面吧: 最后还是用了input()模拟用户操作吧- -!不就操作个字典吗(字典模拟商品数据).. python版本: >>>import sys >>>print (sys.version) 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] 1 #这里用字典的话就没有定义商品编号所以此程序不支持同个商品同时买俩件- -!用

老男孩python自动化运维作业1

1 #!/usr/bin/env python 2 # -*-coding:UTF-8-*- 3 4 import re 5 6 def login(): 7 8 f=open("user",'r') #读取user配置文件. 9 cont=f.readlines() #readlines把读取的行当作元素返回一个列表 10 f.close() 11 allname=[] #初始化一个用户列表 12 allpasswd=[] 13 for i in range(0,len(cont)-

序列化之XML序列化技术

优点: 1.可读性比较好, 2.有利于调试 3.XML序列化与语言无关 缺点: 1.序列化化后码流比较大,[主要是因为使用标签对来表示数据] 2.效率不高 使用场景: 1.对性能要求不高,且QPS较低的企业级内部系统之间的数据交换的场景 2.由于与语言无关,因此,可以使用到异构系统之间的数据交换协议,如WebService相关协议 使用方法: 序列化主要使用了XStream类的toXML(obj)方法,将obj对象转换为String类型,然后,再转换成字节数组. 反序列化主要使用到了XStrea

JAVA对象和XML文档、原来他们之间还有这一出

最近项目开发中遇到一个问题,访问接口不再通过url地址请求的方式,而是 通过socket发送xml格式的报文到指定服务器来进行信息的统一认证.. 因此组装xml格式的报文字符串以及解析服务器返回的xml格式的字符获得所需数据成了 解决问题的关键..在这之前,以为会有点难...做完之后,然并卵,也就那么一回事... LZ主要用的xStream类..这个类的完美地解决了XML文档和JAVA对象之间的转换.. 由于刚刚接触这个类...对于里面提供的很多功能还没细细挖掘..只是简单地实现了 我想要实现的

XStream互转String和XML,以及如何读取web的下的文件

在项目开发中有时要传输xm文件,要转换成字符串传输,而无法使用对象传输,所以要进行转换,所用进行总结下利用XStream进行string与XML对象之间的互转,以及在转换某一包下所有的类. XML文件的解析和创建,请参考:http://blog.csdn.net/oyyz111/article/details/22730983 首先,利用Spring的PathMatchingResourcePatternResolver进行某包下的class文件的读取,其中用ant的匹配模式,例如congfig

XML 字符串 转 JSON

package com.yile.test; import com.google.gson.Gson;import com.thoughtworks.xstream.XStream;import com.thoughtworks.xstream.io.xml.DomDriver;import com.yile.model.Product; public class XStreamTest { public static void main(String[] args) { XStream xst

Hadoop作业性能指标及參数调优实例 (二)Hadoop作业性能调优7个建议

作者:Shu, Alison Hadoop作业性能调优的两种场景: 一.用户观察到作业性能差,主动寻求帮助. (一)eBayEagle作业性能分析器 1. Hadoop作业性能异常指标 2. Hadoop作业性能调优7个建议 (二)其他參数调优方法 二.Hadoop集群报告异常,发现个别作业导致集群事故. 一.用户观察到作业性能差,主动寻求帮助. (一)eBay Eagle作业性能分析器 对一般作业性能调优.eBay Eagle[i]的作业性能分析器已经能满足用户大部分需求. eBayEagle

xstream对象xml互转

1.引入jar包 xpp3_min-1.1.4c.jarxstream-1.4.8.jar 2.建立java bean package com.jdw.bean; import java.util.ArrayList; import java.util.List; public class Company { private List<Department> departments = new ArrayList<Department>(); public List<Depa

xstream读取xml

xStream可以Java和xml相互转换.下面主要说明xstream读取xml文件(和xstream将Java转化成xml差不多).本次学习用到的是xstream1.4.7 项目中使用到的xml文件 <config name="personconfig"> <!-- <add> --> <!-- 使用addImplicitCollection可以不出现 --> <address> <add>abc;abc<