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

时间:2013-07-15 03:58:57

标签: c# xml date sorting

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

  • 这个文件的命名约定是否适合进行此排序?

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

1 个答案:

答案 0 :(得分:1)

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();