c#中文件后缀生成的前缀

本文关键字:前缀 后缀 中文 文件 | 更新日期: 2023-09-27 18:17:05

我正在为一个应用程序编写一个文件生成器模块,该应用程序将数据集和文件名传递给该应用程序以生成excel, pdf或csv。我正在考虑传递一个模板文件名,通过它我应该知道文件名是否需要前缀或后缀日期,而不是假设总是添加日期后缀。我可以编写代码来查找MM或DD或YY或YYYY,并建立一个文件名,但想知道这是否可以更好地处理?非常感谢您的建议!

c#中文件后缀生成的前缀

这就是我喜欢使用Flags枚举的原因。它们允许对同一个枚举进行多个设置,同时保留使用枚举的好处。此外,可以通过向枚举中添加新值(它必须是2的幂,所以如果在我的示例中添加新值,它的值将为4),然后在必要时为该设置创建逻辑来解释出现的任何其他需求。

一个使用控制台应用程序的快速示例:

public class Class1
{
    [Flags]
    private enum DateTypeRequired : byte
    {
        Prefix = 1,
        Suffix = 2
    }
    public static void Main(string[] args)
    {
        string myFileName = "test.xls";
        var settings = DateTypeRequired.Prefix | DateTypeRequired.Suffix;
        AppendDateToFile(ref myFileName, settings);
        Console.Write(myFileName);
        Console.ReadKey();
    }
    private static void AppendDateToFile(ref string fileName, DateTypeRequired datesNeeded)
    {
        if ((datesNeeded & DateTypeRequired.Prefix) == DateTypeRequired.Prefix)
        {
            fileName = string.Concat(DateTime.Now.ToString("ddmmyyyy"), fileName);
        }
        if ((datesNeeded & DateTypeRequired.Suffix) == DateTypeRequired.Suffix)
        {
            string[] fileParts = fileName.Split(new char[]{'.'});
            fileName = string.Concat(fileParts[0],
                            string.Concat(DateTime.Now.ToString("ddmmyyyy.")), fileParts[1]);
        }
    }
}