当前位置:编程学习 > C#/ASP.NET >>

如何创建“Txt”文件,并在“.Txt”文件中写入信息

Master,求这样的实例,或是代码实例。

一个Winform窗体,它有两个“Textbox”,一个用来输入“txt”文件名,一个用来输入“txt文件中的内容”。

在窗体上还有一个“Button”按钮,点击按钮,根据输入的文件名和内容创建“txt”文件到“项目下的Log文件夹”下。


--------------------编程问答-------------------- 写txt文件方法很多,比如

            StreamWriter writer = new StreamWriter("c:\\1.txt");
            writer.Write("abc");
            writer.Close();
--------------------编程问答-------------------- File.WriteAllText(@"路径"+TextBoxFilename.Text.Trim(),TextBoxContent.Text.Trim());
路径自己拼下 --------------------编程问答-------------------- WriteAllText方法会自动创建文件并写入字符串。 --------------------编程问答--------------------
引用 1 楼 bdmh 的回复:
写txt文件方法很多,比如
C# code?123            StreamWriter writer = new StreamWriter("c:\\1.txt");            writer.Write("abc");            writer.Close();

到位
--------------------编程问答-------------------- http://msdn.microsoft.com/zh-cn/library/vstudio/8bh11f1k.aspx

写的再明了不过了,你不看,微软都要哭了。 --------------------编程问答--------------------
引用 5 楼 devmiao 的回复:
http://msdn.microsoft.com/zh-cn/library/vstudio/8bh11f1k.aspx

写的再明了不过了,你不看,微软都要哭了。
++ --------------------编程问答-------------------- 这种例子网上一大把 --------------------编程问答-------------------- 一楼的方法就可行的…… --------------------编程问答--------------------
引用 3 楼 dalmeeme 的回复:
WriteAllText方法会自动创建文件并写入字符串。



大师,获取WInform程序的根目录呢???那个类叫做什么呢??? --------------------编程问答-------------------- string directory = System.AppDomain.CurrentDomain.BaseDirectory + "Logfiles";

            if (!Directory.Exists(directory))
                Directory.CreateDirectory(directory);

这样对吧??? --------------------编程问答-------------------- Application.StartupPath --------------------编程问答-------------------- StreamWriter writer = new StreamWriter(Application.StartupPath +"debug的那个目录"); 
 writer.Write("123");           
  writer.Close(); --------------------编程问答-------------------- 直接百度就好了。网上太多了 --------------------编程问答-------------------- File.Create(LogFileName).Close();

未能找到路径“E:\Test\TxtFile\TxtFile\bin\Debug\LogFiles\2013年\1月\11日\44分52秒115毫秒测试-测试.txt”的一部分。


路径,不能太深是吗???   多少层不行呢??? --------------------编程问答-------------------- 大师,总是提示:

未能找到路径“E:\Test\TxtFile\TxtFile\bin\Debug\LogFiles\20130111\测试5424195.txt”的一部分。


 private void button1_Click(object sender, EventArgs e)
        {
            string logname = textBox1.Text.Trim();
            string logcontent = textBox2.Text.Trim();

            TxtHelper txthelper = new TxtHelper();
            txthelper.WriteLog(logname, logcontent);
        }



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace TxtFile
{
   public class TxtHelper
    {
       public void WriteLog(string LogName, string LogContent)
       {
           //日志文件按照,时日月年分开
           DateTime DANow=DateTime.Now;
           //string Year=DANow.Year.ToString()+"年";
           //string Month=DANow.Month.ToString()+"月";
           //string Day=DANow.Day.ToString()+"日";
           //string DATime=DANow.ToString("mm分ss秒fff毫秒");
           string DADate = DANow.ToString("yyyyMMdd");

           string DATime = DANow.ToString("mmssfff");

           string directory = System.AppDomain.CurrentDomain.BaseDirectory + "LogFiles";

           if (!Directory.Exists(directory))
               Directory.CreateDirectory(directory);

           //string LogFileDir = string.Format("{0}\\{1}\\{2}\\{3}\\{4}", directory, Year, Month, Day, DATime+LogName);

           string LogFileDir = string.Format("{0}\\{1}\\{2}", directory, DADate, LogName + DATime);

           string LogFileName = LogFileDir + ".txt";


           if (!File.Exists(LogFileName))
           {
               File.Create(LogFileName).Close();
               StreamWriter output;
               output = File.AppendText(LogFileName);
               output.WriteLine(LogContent);
               
               output.Close();
           }
           else
           {
               StreamWriter output;
               output = File.AppendText(LogFileName);
               output.WriteLine(LogContent);
               
               output.Close();
           }
       }
    }
} --------------------编程问答-------------------- Master,目录只能“string logFileDir = string.Format("{0}\\{1}", directory, logname+DATime);”这样两级吗???   三级菜单就会报错啊。 --------------------编程问答-------------------- 目录级数不限的吧,如果报错的话,先检查下路径是否存在,不存在就创建路径
引用你的代码如下
 

if (!Directory.Exists(directory))
     Directory.CreateDirectory(directory);
string LogFileDir = string.Format("{0}\\{1}\\{2}", directory, DADate, LogName + DATime);//多了一层目录,所以出错,因为没创建
string LogFileName = LogFileDir + ".txt";


 if (!File.Exists(LogFileName))
{
             。。。。
}


很明显你这样是不限的,因为你的路径只创建到directory文件夹,但是你的文件名却是再这个路径下的DADate文件夹中,所以才报错,因为你没有创建DADate。
要不你就改下路径

  string directory = System.AppDomain.CurrentDomain.BaseDirectory + "LogFiles";
  directory=String.Format(directory+"\\{0}",DADate);//目录要创建完整,一直到你要放文件的目录
  if (!Directory.Exists(directory))
     Directory.CreateDirectory(directory);
--------------------编程问答--------------------
引用 16 楼 sswp7 的回复:
Master,目录只能“string logFileDir = string.Format("{0}\\{1}", directory, logname+DATime);”这样两级吗???   三级菜单就会报错啊。


目录不存在就要创建啊亲,没创建当然会报错了 --------------------编程问答-------------------- 问题虽然简单,但是学问还是蛮多的.....又学习了! --------------------编程问答--------------------
引用 18 楼 leafmao 的回复:
引用 16 楼 sswp7 的回复:Master,目录只能“string logFileDir = string.Format("{0}\\{1}", directory, logname+DATime);”这样两级吗???   三级菜单就会报错啊。

目录不存在就要创建啊亲,没创建当然会报错了


Thanks  a  lot...

这样就可以了啊。

string directory = System.AppDomain.CurrentDomain.BaseDirectory + string.Format("{0}\\{1}\\{2}\\{3}", "LogFiles",Year,Month,Day); --------------------编程问答-------------------- 文件夹没有创建到 --------------------编程问答-------------------- 一楼的方法就可行的……
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,