1

我有一个程序可以将文件保存为.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\2013C:\Users\name\Documents\Scan Archive\2013\Jaunuary等。

4

1 回答 1

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();
于 2013-07-15T04:18:05.587 回答