如何按年份和月份将文件排序到文件夹中

本文关键字:排序 文件夹 文件 何按年 | 更新日期: 2023-09-27 18:22:14

我有一个程序,它将以.xml格式保存文件,并手动添加了使用System.DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss")创建文件的日期。示例如下扫描2013-07-15 11-13-31。然后,我需要将这些将生成的文件按年份和月份排序到C:''Users''name''Documents''Scan Archive目录中的文件夹中。

  • 文件的这种命名约定适合进行这种排序吗?

  • 如何开始对此进行编码以将其排序C:''Users''name''Documents''Scan Archive ''2013C:''Users''name''Documents''Scan Archive ''2013''Jaunuary等等。

如何按年份和月份将文件排序到文件夹中

public static String GetDirectoryName(DateTime time, String rootpath)
{
    String year = String.Format("{0:yyyy}", time);
    String month = String.Format("{0:MM}", time) + String.Format("{0:MMM}", time);
    String day = String.Format("{0:dd}", time);
    String filepath = Path.Combine(rootpath, "y" + year);
    filepath = Path.Combine(filepath, "m" + month);
    filepath = Path.Combine(filepath, "d" + day);
    return filepath;
}

这将创建一个给定根路径(如C:''users''name''Documents''Scan Archive)和DateTime的目录路径。您可以使用文件名所引用的日期。只需将文件名解析为DateTime即可。

正如其他人在评论中所说,不要使用月份的名称,除非它在一些数值之后。我会完全忽略它,因为我觉得它有点冗长。

很容易将文件名粘贴到该路径的末尾,并在创建文件时创建所有所需的目录。问题解决了!

编辑:创建新文件时创建目录:

string dirpath = GetDirectoryName(date, "C:'Users'Name");
Directory.CreateDirectory(dirpath);
string filePpath = Path.combine(dirpath,"myfilename.txt");
FileInfo info = new FileInfo(filePath);
info.Create().Close();