C#:读写文档

保存记录于一些文件的时候会要读写文档,这里注意需要append到文档

文档名字中不能有\ / : * ? " < >

这里PATH必须存在,不存在的方法暂时没找到

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Windows.Forms;
 9 using System.IO;
10
11 namespace HdRb
12 {
13     public partial class Form1 : Form
14     {
15         public const string PATH = "C:\\Users\\Administrator\\Desktop\\";
16         public Form1()
17         {
18             InitializeComponent();
19         }
20
21         private void Form1_FormClosing(object sender, FormClosingEventArgs e)
22         {
23             DateTime now = DateTime.Now;
24             string path = PATH + now.GetDateTimeFormats(‘D‘)[0].ToString() + ".cvs";
25             FileStream fst = new FileStream(path, FileMode.OpenOrCreate | FileMode.Append);
26             StreamWriter swt = new StreamWriter(fst, Encoding.Default);
27             swt.WriteLine(now.ToString() + " log out");
28             swt.Close();
29             fst.Close();
30         }
31     }
32 }

另外附上一些资料

// C# 日期格式 
DateTime dt = DateTime.Now;

dt.ToString();//2005-11-5 13:21:25 
dt.ToFileTime().ToString();//127756416859912816 
dt.ToFileTimeUtc().ToString();//127756704859912816 
dt.ToLocalTime().ToString();//2005-11-5 21:21:25 
dt.ToLongDateString().ToString();//2005年11月5日 
dt.ToLongTimeString().ToString();//13:21:25 
dt.ToOADate().ToString();//38661.5565508218 
dt.ToShortDateString().ToString();//2005-11-5 
dt.ToShortTimeString().ToString();//13:21 
dt.ToUniversalTime().ToString();//2005-11-5 5:21:25 
dt.Year.ToString();//2005 
dt.Date.ToString();//2005-11-5 0:00:00 
dt.DayOfWeek.ToString();//Saturday 
dt.DayOfYear.ToString();//309 
dt.Hour.ToString();//13 
dt.Millisecond.ToString();//441 
dt.Minute.ToString();//30 
dt.Month.ToString();//11 
dt.Second.ToString();//28 
dt.Ticks.ToString();//632667942284412864 
dt.TimeOfDay.ToString();//13:30:28.4412864 
dt.ToString();//2005-11-5 13:47:04 
dt.AddYears(1).ToString();//2006-11-5 13:47:04 
dt.AddDays(1.1).ToString();//2005-11-6 16:11:04 
dt.AddHours(1.1).ToString();//2005-11-5 14:53:04 
dt.AddMilliseconds(1.1).ToString();//2005-11-5 13:47:04 
dt.AddMonths(1).ToString();//2005-12-5 13:47:04 
dt.AddSeconds(1.1).ToString();//2005-11-5 13:47:05 
dt.AddMinutes(1.1).ToString();//2005-11-5 13:48:10 
dt.AddTicks(1000).ToString();//2005-11-5 13:47:04 
dt.CompareTo(dt).ToString();//0 
dt.Add(?).ToString();//问号为一个时间段 
dt.Equals("2005-11-6 16:11:04").ToString();//False 
dt.Equals(dt).ToString();//True 
dt.GetHashCode().ToString();//1474088234 
dt.GetType().ToString();//System.DateTime 
dt.GetTypeCode().ToString();//DateTime 
   
dt.GetDateTimeFormats(‘s‘)[0].ToString();//2005-11-05T14:06:25 
dt.GetDateTimeFormats(‘t‘)[0].ToString();//14:06 
dt.GetDateTimeFormats(‘y‘)[0].ToString();//2005年11月 
dt.GetDateTimeFormats(‘D‘)[0].ToString();//2005年11月5日 
dt.GetDateTimeFormats(‘D‘)[1].ToString();//2005 11 05 
dt.GetDateTimeFormats(‘D‘)[2].ToString();//星期六 2005 11 05 
dt.GetDateTimeFormats(‘D‘)[3].ToString();//星期六 2005年11月5日 
dt.GetDateTimeFormats(‘M‘)[0].ToString();//11月5日 
dt.GetDateTimeFormats(‘f‘)[0].ToString();//2005年11月5日 14:06 
dt.GetDateTimeFormats(‘g‘)[0].ToString();//2005-11-5 14:06 
dt.GetDateTimeFormats(‘r‘)[0].ToString();//Sat, 05 Nov 2005 14:06:25 GMT

string.Format("{0:d}",dt);//2005-11-5 
string.Format("{0:D}",dt);//2005年11月5日 
string.Format("{0:f}",dt);//2005年11月5日 14:23 
string.Format("{0:F}",dt);//2005年11月5日 14:23:23 
string.Format("{0:g}",dt);//2005-11-5 14:23 
string.Format("{0:G}",dt);//2005-11-5 14:23:23 
string.Format("{0:M}",dt);//11月5日 
string.Format("{0:R}",dt);//Sat, 05 Nov 2005 14:23:23 GMT 
string.Format("{0:s}",dt);//2005-11-05T14:23:23 
string.Format("{0:t}",dt);//14:23 
string.Format("{0:T}",dt);//14:23:23 
string.Format("{0:u}",dt);//2005-11-05 14:23:23Z 
string.Format("{0:U}",dt);//2005年11月5日 6:23:23 
string.Format("{0:Y}",dt);//2005年11月 
string.Format("{0}",dt);//2005-11-5 14:23:23

string.Format("{0:yyyyMMddHHmmssffff}",dt);

// 计算2个日期之间的天数差 
DateTime dt1 = Convert.DateTime("2007-8-1");

DateTime dt2 = Convert.DateTime("2007-8-15");

TimeSpan span = dt2.Subtract(dt1);

int dayDiff = span.Days + 1;

// 计算某年某月的天数 
int days = DateTime.DaysInMonth(2007, 8);

days = 31;

// 给日期增加一天、减少一天 
DateTime dt =DateTime.Now; 
dt.AddDays(1); //增加一天 
dt.AddDays(-1);//减少一天

日期格式模式 说明
d 月中的某一天。一位数的日期没有前导零。
dd 月中的某一天。一位数的日期有一个前导零。
ddd 周中某天的缩写名称,在 AbbreviatedDayNames 中定义。
dddd 周中某天的完整名称,在 DayNames 中定义。
M 月份数字。一位数的月份没有前导零。
MM 月份数字。一位数的月份有一个前导零。
MMM 月份的缩写名称,在 AbbreviatedMonthNames 中定义。
MMMM 月份的完整名称,在 MonthNames 中定义。
y 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。
yy 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。
yyyy 包括纪元的四位数的年份。
gg 时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。
h 12 小时制的小时。一位数的小时数没有前导零。
hh 12 小时制的小时。一位数的小时数有前导零。
H 24 小时制的小时。一位数的小时数没有前导零。
HH 24 小时制的小时。一位数的小时数有前导零。
m 分钟。一位数的分钟数没有前导零。
mm 分钟。一位数的分钟数有一个前导零。
s 秒。一位数的秒数没有前导零。
ss 秒。一位数的秒数有一个前导零。
f 秒的小数精度为一位。其余数字被截断。
ff 秒的小数精度为两位。其余数字被截断。
fff 秒的小数精度为三位。其余数字被截断。
ffff 秒的小数精度为四位。其余数字被截断。
fffff 秒的小数精度为五位。其余数字被截断。
ffffff 秒的小数精度为六位。其余数字被截断。
fffffff 秒的小数精度为七位。其余数字被截断。
t 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项的第一个字符(如果存在)。
tt 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项(如果存在)。
z 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数没有前导零。例如,太平洋标准时间是“-8”。
zz 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数有前导零。例如,太平洋标准时间是“-08”。
zzz 完整时区偏移量(“+”或“-”后面跟有小时和分钟)。一位数的小时数和分钟数有前导零。例如,太平洋标准时间是“-08:00”。
: 在 TimeSeparator 中定义的默认时间分隔符。
/ 在 DateSeparator 中定义的默认日期分隔符。
% c 其中 c 是格式模式(如果单独使用)。如果格式模式与原义字符或其他格式模式合并,则可以省略“%”字符。
/ c 其中 c 是任意字符。照原义显示字符。若要显示反斜杠字符,请使用“//”。

只有上面第二个表中列出的格式模式才能用于创建自定义模式;在第一个表中列出的标准格式字符不能用于创建自定义模式。
自定义模式的长度至少为两个字符;例如,

DateTime.ToString( "d"); // 返回 DateTime 值;“d”是标准短日期模式。 
DateTime.ToString( "%d"); // 返回月中的某天;“%d”是自定义模式。 
DateTime.ToString( "d "); // 返回后面跟有一个空白字符的月中的某天;“d”是自定义模式。

时间: 2024-10-03 05:08:35

C#:读写文档的相关文章

MFC模板、文档、视图、框架开发实例

为了能够把我们所学的所有知识都在实例中得以完整的体现,我们来写一个尽可能复杂的"文档/视图"架构MFC程序,这个程序复杂到: (1)是一个多文档/视图架构MFC程序: (2)支持多种文件格式(假设支持扩展名为BMP的位图和TXT的文本文件): (3)一个文档(BMP格式)对应多个不同类型的视图(图形和二进制数据). 相信上述程序已经是一个包含"最复杂"特性的"文档/视图"架构MFC程序了,搞定了这个包罗万象的程序,还有什么简单的程序搞不定呢? 用

文档/视图结构详细介绍

以单文档界面(SDI)应用程序为例,介绍MFC的文档/视图程序结构. 学习要求 理解文档/视图结构,可在AppWizard生成的SDI程序框架的基础上添加必要的代码,以生成自己的应用程序. 授课内容 大部分应用程序均要使用数据,其主要工作可以分为两部分:一是对数据的管理,如存储.复制和查询等任务,一是对数据的处理和输入输出,包括显示和打印.MFC提供了“文档/视图”结构支持这类应用程序. 12.1文档/视图概念 在文档/视图结构里,文档可视为一个应用程序的数据元素的集合,MFC通过文档类提供了大

python+selenium自动化软件测试(第12章):Python读写XML文档

XML 即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进 行定义的源语言.xml 有如下特征: 首先,它是有标签对组成:<aa></aa> 标签可以有属性: <aa id=’123’></aa> 标签对可以嵌入数据: <aa>abc</aa>Python对XML文档读写常用有几个模块: (1) xml.etree.ElementTree ElementTree就像一个轻量级的DOM,具有方便友好的A

Go 语言读写 Excel 文档

Excelize 是 Golang 编写的一个用来操作 Office Excel 文档类库,基于微软的 Office OpenXML 标准.可以使用它来读取.写入 XLSX 文件.相比较其他的开源类库,Excelize 支持写入原本带有图片(表)的文档,还支持向 Excel 中插入图片,并且在保存后不会丢失图表样式. 项目主页 github.com/Luxurioust/excelize 安装 go get github.com/Luxurioust/excelize 创建 XLSX packa

NPOI读写Excel表格、Word文档

NPOI是从POI移植过来的.NET版本,专门对Word.Excel进行读写操作的一个开源项目 下面就试着怎么用我们的C#来进行读写操作,我现在用的Office版本是2016 我们首先通过Nuget把NPOI引入到我们的项目中 1.读取Excel表格 using(FileStream fs=new FileStream(@"C:\Users\BIDIANQING\Desktop\1.xlsx", FileMode.Open,FileAccess.Read)) { XSSFWorkboo

读写文本文档

StreamReader SReader = new StreamReader(“C:\1.txt”, Encoding.Default);//路径与编码 str = SReader.ReadToEnd(); SReader.Close(); FileStream fs1 = new FileStream(“C:\1.txt”, FileMode.Create, FileAccess.Write);//创建写入文件,此方法创建文档,如存在则覆盖 StreamWriter sw = new Str

.Net那点事儿系列:C#操作Xml:通过XmlDocument读写Xml文档

什么是Xml? Xml是扩展标记语言的简写,是一种开发的文本格式.关于它的更多情况可以通过w3组织了解http://www.w3.org/TR/1998/REC-xml-19980210.如果你不知道它,那你就out太多了. .Net处理Xml相关随笔 1.通过XmlDocument读写Xml文档2.通过XmlWriter和XmlReader读写Xml文档3.通过LINK to Xml存取XML4.通过XmlScheme定义固定格式xml文档5.Xml序列化或者反序列化类6.通过XPath查找X

Python读写文本文档详解

以下3步问正确的程序片段: 1.写文件 #! /usr/bin/python3 'makeTextFile.py -- create text file' import os def write_file(): "used to write a text file." ls = os.linesep #get filename fname = input("Please input filename:") while True: if os.path.exists(

Amoeba实现Mysql读写分离部署文档

以下所有理解纯属个人理解,如若有误欢迎指出,不胜感激--o(∩_∩)o 两台服务器配置MYSQL主从复制实现数据高可用,这时读与写操作都有由master服务器来完成的,而从服务器只是复制了mster服务器的数据,这时可以利用一台服务器配置Amoeba实现mysql读写分离, master负责写,slave负责读取,当然 也可以有多个salve-- 从而减轻master服务器的压力,实现负载分摊: 拓扑图: Mysql主从复制原理: 两台mysql服务器一个作为master一个为slave:mas