C# 读取文件中的数据,并保存生成新的

qqqqmmmmmm 2015-09-07 04:02:03
Button1,Button2 Button1用来浏览某个文件,Button2用来生成一个文件。
Button1浏览了一个文件,选中他。 点击一下Button2,在指定路径生成了一个新的文件。
生成的新文件通过split去掉了浏览文件中的所有","号
...全文
388 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
如果你要改名的话,name这个变量就没用了,你可以直接写成 name = "AA.txt",其它就不用改了
qqqqmmmmmm 2015-09-07
  • 打赏
  • 举报
回复
引用 13 楼 starfd 的回复:
指定新文件名那样可以啊,不要跟外面的变量重名就行了,string.Empty在windows里面就是空字符串,替换逗号的
外部的filepath=null; 现在btn2里的 string name = Path.GetFileName(filePath); string filePath = @"D:\demo\" + AA + ".txt"; 已经重名了吧?
  • 打赏
  • 举报
回复
指定新文件名那样可以啊,不要跟外面的变量重名就行了,string.Empty在windows里面就是空字符串,替换逗号的
qqqqmmmmmm 2015-09-07
  • 打赏
  • 举报
回复
引用 11 楼 starfd 的回复:
保存用其它文件名的话,改button2事件里的string name = Path.GetFileName(filePath);这部分 外部的fileName是选择的文件路径,不能改的
版主,您看一下,是这样的btn1里的filepath=op.filepath; 是把路径指向了我打开的那个txt文件是把 我在btn2里看您的代码 using (StreamReader sr = new StreamReader(this.filePath)) { string txt = sr.ReadToEnd(); using (var sw = File.CreateText(Path.Combine(newDirectory, name))) { sw.Write(txt.Replace(",", string.Empty)); } } 是这部分去读btn1里打开那个txt的内容吧,然后去掉所有的“,”号并输出,string.Empty? 这个是什么意思能解释一下吗? 另外在btn2代码里我要生成我需要的文件这样写可以吗,假如我要生成AA.txt,做的是否正确 string name = Path.GetFileName(filePath); string filePath = @"D:\demo\" + AA + ".txt";
  • 打赏
  • 举报
回复
保存用其它文件名的话,改button2事件里的string name = Path.GetFileName(filePath);这部分 外部的fileName是选择的文件路径,不能改的
qqqqmmmmmm 2015-09-07
  • 打赏
  • 举报
回复
引用 8 楼 starfd 的回复:
string filePath = null;
string newDirectory = @"D:/demo/";
private void btn1_Click(object sender, EventArgs e)
{
    OpenFileDialog op = new OpenFileDialog();
    if (op.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        filePath = op.FileName;
    }
}
private void btn2_Click(object sender, EventArgs e)
{
    if (filePath != null)
    {
        string name = Path.GetFileName(filePath);
        using (StreamReader sr = new StreamReader(this.filePath))
        {
            string txt = sr.ReadToEnd();
            using (var sw = File.CreateText(Path.Combine(newDirectory, name)))
            {
                sw.Write(txt.Replace(",", string.Empty));
            }
        }
    }
}
大致代码就这样了,你看着办吧
这个filepath如果我要生成特殊的AA.txt文件名用,不受影响吧? string filePath = @"D:\demo\" + AA + ".txt";
於黾 2015-09-07
  • 打赏
  • 举报
回复
用ReadAllLines读取出来,变成一整个字符串 然后根本用不着什么split,这是把字符串转成字符串数组用的 你需要用的是 string.Replace(",","");//把所有逗号替换成空字符串 然后你不仅需要一个OpenFileDialog,你还得有个SaveFileDialog,好让用户选择把文件保存到哪里去 然后你调用写文件的方法写入文件里不就得了
  • 打赏
  • 举报
回复
string filePath = null;
string newDirectory = @"D:/demo/";
private void btn1_Click(object sender, EventArgs e)
{
    OpenFileDialog op = new OpenFileDialog();
    if (op.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        filePath = op.FileName;
    }
}
private void btn2_Click(object sender, EventArgs e)
{
    if (filePath != null)
    {
        string name = Path.GetFileName(filePath);
        using (StreamReader sr = new StreamReader(this.filePath))
        {
            string txt = sr.ReadToEnd();
            using (var sw = File.CreateText(Path.Combine(newDirectory, name)))
            {
                sw.Write(txt.Replace(",", string.Empty));
            }
        }
    }
}
大致代码就这样了,你看着办吧
Imcx 2015-09-07
  • 打赏
  • 举报
回复
看起来像是操作txt文件


        public static void DataSave(string saveDirectory, string saveName, string saveContent)
        {
            string filePath = saveDirectory + saveName + ".txt";
            if (!Directory.Exists(saveDirectory))
            {
                Directory.CreateDirectory(saveDirectory);
            }
            using (StreamWriter sw = File.AppendText(filePath))
            {
                sw.Write(saveContent);
            }
        }



private void button1_Click(object sender, EventArgs e)
{
            OpenFileDialog openFile = new OpenFileDialog();
            if (openFile.ShowDialog() == DialogResult.OK)
            {
                using (StreamReader streamReader = File.OpenText(openFile.FileName))
                {
                    string txtLine = streamReader.ReadToEnd();
                    //存到对应的控件中修改例如textBox1
                }
            }
}

private void button2_Click(object sender, EventArgs e)
{
            string fileDirectory = String.Empty;
            FolderBrowserDialog fbd = new FolderBrowserDialog();
            if (fbd.ShowDialog() == DialogResult.OK)
            {
                fileDirectory = fbd.SelectedPath;
            }

            DataSave( fileDirectory ,"文件名称","文件内容");
}

长空X 2015-09-07
  • 打赏
  • 举报
回复
文件名是 X:\xx\xx.txt 你要输出的路径是:X:\xx\xx 这下分清了么
qqqqmmmmmm 2015-09-07
  • 打赏
  • 举报
回复
引用 2 楼 hjkl950217 的回复:
同意楼上的。。你这个不是太难。。第一个用openfiledi什么(你能百度到)来打开文件浏览器,然后获取其中的filename就是你点的文件。按钮2中你有一个固定路径,那么你处理好后,这个路径+文件名保存到在方就行
浏览打开这个已经完全实现了,按钮2那个路径操作有点迷糊
qqqqmmmmmm 2015-09-07
  • 打赏
  • 举报
回复
引用 1 楼 Z65443344 的回复:
文件的概念太宽泛了 到底是txt,word,excel还是PDF,处理起来是完全不一样的
txt文本文件
xxoo2007 2015-09-07
  • 打赏
  • 举报
回复
没看出来难点在哪里?游戏的存档文件不都是这么操作的么
长空X 2015-09-07
  • 打赏
  • 举报
回复
同意楼上的。。你这个不是太难。。第一个用openfiledi什么(你能百度到)来打开文件浏览器,然后获取其中的filename就是你点的文件。按钮2中你有一个固定路径,那么你处理好后,这个路径+文件名保存到在方就行
於黾 2015-09-07
  • 打赏
  • 举报
回复
文件的概念太宽泛了 到底是txt,word,excel还是PDF,处理起来是完全不一样的

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧