C#中button控件打开word副本,并自动以日期命名,代码如何编写?

文件夹中的word文件全部以日期命名,如20120717。现利用一个button控件,打开前一天的word副本,并将其命名为当天日期,代码如何编写?

第1个回答  2012-07-18
byte [] bys=new byte [255];
int k = 0;
using (Stream sW = File.Create("e:/xz副本.doc"))//该地址表示你的备份地址文件
{
using (Stream stream = File.Open("e:/xz.doc", FileMode.Open))//该地址表示你的源地址文件
{
k += stream.Read(bys, 0, 255);
while (k < stream.Length)
{
sW.Write(bys, 0, 255);
k += stream.Read(bys, 0, 255);
}
MessageBox.Show("背份完成!");
}
}
//自己写成方法追问

不只是需要一个备份,如只要一个复制的备份,File.Copy一条命令即可搞定,现在的问题是,如何实现复制出来的文件的文件名自动以当天日期进行命名?请大神赐教~

追答

不明白你的意思,是在复制的时候就改为当天还是将已经复制出来的改为当天

追问

就是将复制出来的word名以当天日期命名,这样,在一个文件夹里面的所有word都以日期命名,一个对应一天的。

追答

还是不大明白你的意思,1若你说的就是将一个文件夹中的doc文件名以时间命名,就没必要提到备份,2若你说的是在备份时的名字改为日期时间,是1还是2
如果是1:
FileInfo file=new FileInfo(sourcefile );
string str = file.CreationTime.ToString ("yyyyMMdd") ;
File.Move(sourcefile, "e:/" + str + ".doc");

追问

比如说,昨天的那个文件名为20120717,那么我今天要得到的是一个文件名为20120718的文件,这个文件是20120717那个文件的副本(就是20120717复制过来的,后面我再对此文件内容进行修改保存,这是后话),这下明白了吧?如何用C#实现呢?

已经成功实现,仍然谢谢你。

第2个回答  2012-07-18
思路大概如下:
1. 获取当天的日期,以获得前一天的日期。格式为yyyymmdd
2. 如果仅仅只是要前一天的副本,那么完全可以用File.Copy这个方法。追问

嗯,可否写出大概的代码?新手菜鸟,请多指教。如果成功,我将加分。

追答

获取日期的方式是DateTime.Now
如果要格式化那么就是DateTime.Now.ToString("yyyymmdd")
File.Copy的方法原型是:
publicstaticvoid Copy(
string sourceFileName,
string destFileName
)
获取前一天时间的方法为
DateTime dt=DateTime.Now.AddDays(-1)

还要我把代码写出来吗?

追问

DateTime.Now.ToString("yymmdd");
DateTime t = DateTime.Now;
DateTime dt = DateTime.Now.AddDays(-1);
File.Copy(@"E:\wf\dt.doc",@"E:\wf\t.doc");
string path1 = @"E:\wf\t.doc";
System.Diagnostics.Process.Start(path1);
这是错的,提示找不到E:\wf\dt.doc。如何修改呢?

本回答被提问者采纳
第3个回答  2012-07-18
IO.File.Create("abcd.doc");追问

你这只是创建一个word吧,如果复制上一天的word,并以当天日期重新命名呢?

相似回答