您的位置:首页 > 编程语言 > Java开发

文件创建日期,修改日期修改程序

2011-08-01 16:23 501 查看
由于特殊需要,对文件的创建日期,修改日期根据文件名日期进行批量随机性(有时间范围段)的修改,一般修改程序比较难以满足这样的需求,于是就有了以下的程序,本来想用JAVA来做,后来发现这部分用JAVA来实现是有点麻烦的,只能用.NET来实现,C#的语法还是和JAVA很相近的。

API很强大,调用代码如下:

System.IO.FileInfo fia = new System.IO.FileInfo("文件路径");
fia.CreationTime = dtF;   //修改创建时间
fia.LastWriteTime = dtF; ;//修改最后修改时间
fia.LastAccessTime = dtF; ;//修改最后访问时间

时间随机代码如下:

private void button2_Click(object sender, EventArgs e)
{

int lastInt = 0;//上一次随机数
int randInt = 0;//随机数
String startD = textBox1.Text + ":" + textBox2.Text + ":" + textBox3.Text;

String startE = textBox6.Text + ":" + textBox5.Text + ":" + textBox4.Text;

FolderBrowserDialog fbd = new FolderBrowserDialog();

fbd.ShowDialog();

String app = fbd.SelectedPath;

string[] fileNames = System.IO.Directory.GetFiles(app);

Random rd = new Random();

foreach (string file in fileNames)
{

System.IO.FileInfo fia = new System.IO.FileInfo(file);

listBox1.Items.Add(file.Replace(app+"\\",""));

String apps = file.Replace(app + "\\", "");

String appDstr = apps.Substring(7, 8);

appDstr = appDstr.Substring(0, 4) + "-" + appDstr.Substring(4, 2) + "-" + appDstr.Substring(6, 2);

label5.Text = appDstr;

DateTime dtS = Convert.ToDateTime(appDstr+" "+startD);

DateTime dtE = Convert.ToDateTime(appDstr + " " + startE);

TimeSpan ts = dtE - dtS;

int roundRandNum = rd.Next(1,10);//避免种子重复性

randInt = rd.Next(roundRandNum, Convert.ToInt32(ts.Ticks / 1000000000));

while (randInt!= lastInt)//避免短时间内产生同样的随机数
{

lastInt = randInt;

long timeTicks = Convert.ToInt64(j) * Convert.ToInt64(1000000000);

DateTime dtF = dtS.AddTicks(timeTicks);

fia.CreationTime = dtF;//修改创建时间

fia.LastWriteTime = dtF; ;//修改最后修改时间

fia.LastAccessTime = dtF; ;//修改最后访问时间
}

}

MessageBox.Show("ALL OK");

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐