20
2012
05

C# 实现txt文本的另存为文件

        private void btnAddSave_Click(object sender, EventArgs e)
        {
            if (rTxt.Text.Trim() != "")
            {
                SavefileAs();
                SaveToTxtFile();
                Form3_Load(sender, e);
            }
            else
            {
                MessageBox.Show("文件内容为空,不能保持,请先输入内容!");
            }
        }

        /// <summary>
        /// 另存为
        /// </summary>
        private void SavefileAs()
        {
            SaveFileDialog savefile = new SaveFileDialog();
            //提示用户选择保存文件(默认为桌面)
            savefile.InitialDirectory = Application.StartupPath + @"\File";
            //打开文件的初始目录
            savefile.Filter = "文本文件(*.txt)|";
            savefile.FileName = "Text";
            //格式转换如此简单
            savefile.DefaultExt = ".txt";
            //设置或获取文件后缀
            DialogResult dr = savefile.ShowDialog();
            if (dr == DialogResult.OK)
            {
                String filePath = savefile.FileName.ToString();
                txtPath.Text = filePath.ToString();
            }
        }

        /// <summary>
        /// 保存文件
        /// </summary>
        private void SaveToTxtFile()
        {
            try
            {
                //int buffer = 1024;
                //创建一个文件流,用以写入或者创建一个StreamWriter

                //FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);

                //通过指定字符编码方式可以实现对汉字的支持,否则在用记事本打开查看会出现乱码
                /*改函数很重要由于要将修改的内容覆盖原来的文件内容故设第二个参数为false,
                同时还不能用其他类如FileString来操作文件(多线程占用,不能覆盖修改文件)
                 * 例如:new StreamWriter(fs, true, Encoding.GetEncoding("GB2312"));是错误的*/
                StreamWriter m_streamWriter = new StreamWriter(txtPath.Text, false, Encoding.GetEncoding("GB2312"));

                m_streamWriter.Flush();

                // 使用StreamWriter来往文件中写入内容

                m_streamWriter.BaseStream.Seek(0, SeekOrigin.Begin);

                // 把richTextBox1中的内容写入文件

                m_streamWriter.Write(rTxt.Text);

                //关闭此文件

                m_streamWriter.Flush();

                m_streamWriter.Close();

                MessageBox.Show("保存成功!");
            }
            catch (Exception ex)
            {
                MessageBox.Show("保存错误!请重试!错误信息:" + ex.Message); return;
            }
        }

« 上一篇下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。