请问一下,大家在软件中保存文件是怎样保存的?我不知道保存的机制是怎样的。所以我想了个笨办法来保存,是这样的 :每次数据修改后,保存前就把文件删掉再新建一个文件,我觉得这样很不好,想请大家指点一下.

解决方案 »

  1.   

    这完全看你的业务逻辑啊,如果是日志一类的文本文件,那就追加进去就好了。
    如果是有结构的比如xml这样文件,那就按照xml的方式操作它。
    删除肯定是不对的。
      

  2.   

    我昏迷了,你为什么要删掉在新建?貌似StreamWriter里面有一个参数在设置的时候是这样说的,如果是false,如果文件存在就。、如果为true就。
      

  3.   

    我自己写的一个记录程序异常日志的方法,也就是写txt文件了
    //记录程序运行的错误异常等信息
    public static void WriteLog(string logPath , bool recover , Exception ex , StackTrace st , StackFrame sf)
    { //StreamWriter第二个参数为,覆盖原文档(false)或在原文档尾部追加内容(true)
    StreamWriter sw = new StreamWriter(logPath , recover , Encoding.Unicode); //创建文档内容
    IList<string> logLines = new List<string>();
    logLines.Add("-------------------------");
    //logLines.Add("文件路径\t: " + sf.GetFileName());
    logLines.Add("Location\t: " + sf.GetMethod().DeclaringType+"."+sf.GetMethod().Name + " | " + sf.GetFileLineNumber()); 
    //logLines.Add("Commit Exception Type " + ex.GetType().ToString() + ":" );
    logLines.Add("Message\t: " + ex.Message.ToString());
    logLines.Add("Time\t:" + DateTime.Now.TimeOfDay.ToString());
    //写文档
    foreach (String line in logLines)
    sw.WriteLine(line);
    sw.Close(); //直接拷贝下列代码到需要记录日志处
    /*
    Exception ex=new Exception("");//use without catch statement
    StackTrace st = new StackTrace(new StackFrame(true));
    StackFrame sf = st.GetFrame(0);
    Tool.WriteLog(logPath , true , ex , st , sf);
    */}
      

  4.   

    保存都数据库,XML等
    文件操作filestream