当前位置:  开发笔记 > 编程语言 > 正文

自动递增文件名

如何解决《自动递增文件名》经验,为你挑选了1个好方法。

我有一个具有以下格式的文件名:

时间戳的用户名 - 1

这个文件经常写入,但在它变得太大之前我想创建一个新文件.

时间戳的用户名-2-

如何使用最少的内存(即没有或很少的变量)来实现这一点

这是我的版本:

        private void Split() {
            char[] strArr = FlowArgs.Filename.ToCharArray();
            int num;
            //get the last number
            if(Int32.TryParse(strArr[strArr.Length - 1].ToString(), out num)) {
                num += 1;
            }
            //replace the old number with the new number
            char.TryParse(num.ToString(), out strArr[strArr.Length - 1]);
            FlowArgs.Filename = strArr.ToString();

        }

编辑:我在FlowArgs类中添加了"version"属性(int).但是我的新问题是如何在文件名的末尾附加它



1> Tamas Czineg..:

我认为你应该将计数器存储在一个int中.我知道你想节省内存空间,但说实话,额外的int实际上是在"可接受的"类别中.我的意思是,Int32解析器可能浪费了更多的内存.不要忘记在x86上,内存空间被分配到4096字节页面,因此浪费的内存比这4字节多得多.

编辑:您可能希望在您的类中有一个类似GetNextFileName()的方法,为您生成下一个文件名(能够将代码重构为小位非常重要,比保存内存空间重要得多):

private int nextFileNumber = 0;

private string GetNextFileName(string userName)
{
    return String.Format("{0}-{1}-{2}", DateTime.Now, userName,
       nextFileNumber++);
}

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有