C#代码使用今天的日期重命名文件夹中的现有文件

时间:2015-08-25 14:58:46

标签: c# ssis

我需要帮助来重命名c#中的文件。

我在一个文件夹中有10个文件。我的要求是我在所有10个中都添加了日期部分(MMddyyyyhhmmss)。

前:

   1_gender_vadra_ram_R4.txt

   2_gender_vadra_syam_R4.txt

现在输出就是

   1_gender_vadra_ram_R4_MMddyyyyhhmmss.txt
   2_gender_vadra_syam_R4_MMddyyyyhhmmss.txt

我尝试过以下代码,但未能获得上述文件名。

varArchiveDataFolder是可变的,哪个值将来自ssis。

varArchiveDataFolder ="D:\Ram\
DirectoryInfo d = new DirectoryInfo(Dts.Variables["varArchiveDataFolder"].Value.ToString());
        FileInfo[] infos = d.GetFiles();

foreach(FileInfo f in infos)
{
    string CurrDate = System.DateTime.Now.ToString("MM/dd/yyyy HH:mm");
    CurrDate = CurrDate.Substring(0, 2) + CurrDate.Substring(3, 2) + CurrDate.Substring(6, 4) + CurrDate.Substring(11, 2) + CurrDate.Substring(14, 2);    
    File.Move(f.FullName, f.FullName.ToString().Replace("R4","R4_"+ "Currdate"));
}

我的实际要求是我需要从Archive目录中删除文件,如果文件超过今天的30天。

2 个答案:

答案 0 :(得分:1)

使用DateTime.Now而不是附加字符串Currdate

File.Move(f.FullName, f.FullName.ToString().Replace("R4","R4_"+ DateTime.Now.ToString("MMddyyyyhhmmss")));

答案 1 :(得分:1)

如果目标只是删除大于某个日期的文件,为什么不尝试这个。下面的代码实际上是检查上次访问的时间,但您可以根据需要使用其他类似创建或修改时间的代码。

Delete files older than 3 months old in a directory using .NET