日期:2014-05-17  浏览次数:20790 次

C#修改txt文件的一个很初级的问题,别扔西红柿啊
我想问一下在C#里操作文件时,是不是文件没法同时打开和修改?而需要打开一个文件a.txt,修改后保存就要保存成b.txt,而不能直接原文件保存?

比如我有一个文件,拿excel来举例吧,我实际要用的:
a.xls文件里第一列全是类似20120102这样的文本

20120102 张三 男 后边。。。。。。还有很多列
20120325 李四 女 后边。。。。。。还有很多列

我现在想用程序打开这个a.xls文件,把20120102改成2012-01-02的形式,再原文件保存。

求C#代码(操作excel困难的话,拿txt举例也行)!难道一定要保存成b.xls才行?

------解决方案--------------------
如果你的文件被占用,当然其他地方不能保存了,你可以将文件读到数据流中,然后关闭文件,只在流里操作,这样不影响其他地方打开文件
------解决方案--------------------
用数据库的办法,把excel当作数据库,用update搞定楼主问题!
另,同求楼主用文件流问的办法,
因为如果excel有一个合并单元格,我这办法就不行了。
------解决方案--------------------
文本的修改,用using 
C# code

        String ReadTxt;
        string TxtFilePath = @"C:\3.txt";
        void fun()
        {
            using (StreamReader sr = new StreamReader(TxtFilePath))
            {
                ReadTxt = sr.ReadToEnd();
            }

            string FileRead = ReadTxt.Replace("122", "10");

            using (StreamWriter sw = new StreamWriter(TxtFilePath))
            {
                sw.Write(FileRead);
            }
        }