.config文件通常是软件的配置文件,里面有各种相关属性,我在Krpano学习:认识全景生成.bat文件及其相关配置文件(一)中写了krpano中的.config的具体内容。通常网上搜索在C#中如何修改.config文件都是讲如何修改C#工程里app.config和web.config这两个自带的配置文件,而不是单纯修改一个文件。
仍旧以vtour-normal.config为例,我将这个文件当成一个普通文本文件来处理,因而使用C#的System.IO来对其进行读写操作。
private static int linecount = 0;
private static List<string> vtourconfig = new List<string>();
public static void PanoConfig()
{
using (StreamReader sr = new StreamReader("krpano/templates/vtour-normal.config"))
{
//判断文件流是否读取完成
while (sr.Peek() >= 0)
{
//将文本内容的每行存入链表中
vtourconfig.Insert(linecount++, sr.ReadLine());
}
}
}
FileStream fs = null;
try
{
//删除指示输出tilepath位置的内容,再添加重写添加想要输出的位置
//此处知道其为链表第30个元素,不知道也可以exits/contains找出
//也可以对其他内容进行修改
vtourconfig.RemoveAt(30);
vtourconfig.Insert(30, "tilepath=要设置的位置/panos/%BASENAME%.tiles/pano[_c].jpg");
//创建一个新文件流,将链表中的内容写入到指定文本中
//newconfigpath为配置文件存放的绝对路径加上配置文件名称,名称可以不设为vtour-normal.config,只要.bat调用时使用这个名称就行
fs = new FileStream(newconfigpath, FileMode.Create);
using (StreamWriter sw = new StreamWriter(fs))
{
for (int i = 0; i < linecount; i++)
{
sw.WriteLine(vtourconfig[i]);
}
//清理缓冲区,关闭并释放资源
sw.Flush();
sw.Close();
fs.Close();
}
}
catch (Exception ex)
{
sw.Flush();
sw.Close();
fs.Close();
}