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

时间:2014-08-08 19:32:32

标签: c# .net

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

1 个答案:

答案 0 :(得分:0)

这是我喜欢使用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]);
        }
    }
}