【问题标题】:C# File Naming Incremented Name 001++C# 文件命名递增名称 001++
【发布时间】:2011-04-19 12:14:31
【问题描述】:

我正在使用 C# 创建一个小应用程序。我需要以递归方式命名文件,在创建文件时递增文件名。我需要以下格式的文件名:“alt-001.tmp”“alt-002.tmp”等等。我总是看到 00 在递增数字之前被删除,例如,001++ 然后返回 2 而不是 002。

感谢您的帮助,如果这听起来是个愚蠢的问题,我们深表歉意。

【问题讨论】:

  • 一些示例代码和一个玩具示例会很好,所以人们会看到你尝试了什么。它会让你得到更多的回应。

标签: c# file naming


【解决方案1】:

使用它来将数字格式化为字符串:

fileName = string.format("alt-{0:000}.tmp", yourCounterVariable);

字符串格式命令,将“{0}”替换为那里的变量。然后列之后的值是如何格式化替换的掩码。

【讨论】:

    【解决方案2】:

    您需要在柜台上设置ToString() 并使用格式字符串。

    var a = 0;
    (a++).ToString("000").Dump();
    (a++).ToString("000").Dump();
    

    这将为您输出 3 位数字。

    结果: 001 002

    【讨论】:

    • 不是每个人都知道Dump() 是来自 LinqPad 的方法
    • 我使用 linqpad 对此进行了测试,因此您可以删除 .Dump() 并替换为 Console.Writeline(...)
    【解决方案3】:

    像这个点头的例子吗?

    int unique = 0;
    string destPath = string.Format("alt-{0:000}.tmp", unique);
    while (File.Exists(destPath))
    {
         unique++;
         destPath = Path.Combine(easyPath, string.Concat(baseName, " ", unique.ToString("00", CultureInfo.InvariantCulture), file.Extension));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      相关资源
      最近更新 更多