如何生成Lightning001_、Lightning002_格式的序列文件夹名称?
问题分析与解决方案
你的代码问题出在字符串插值的语法使用错误:{"D3"}只是直接插入了字符串"D3",并没有关联任何数值变量和格式转换。要实现3位补零的序号,需要满足两个条件:
- 有一个递增的序号变量(用来区分不同的Lightning文件夹)
- 对该变量使用
:D3格式说明符实现补零
修改步骤与代码示例
- 先定义一个用于计数的成员变量(在类的作用域内声明),初始值设为1,每次生成文件夹后自增:
// 类级别的变量,记录当前Lightning文件夹的序号 private int lightningSequenceNumber = 1;
- 修改生成文件夹名称的代码,把序号变量代入并应用
:D3格式:
else if (currentLightningFolderPath != null) { int currentLightningEndFrame = processedFrames; string frameRange = $"[{currentLightningStartFrame:D4}-{currentLightningEndFrame:D4}]"; // 用序号变量结合:D3格式符,生成3位补零的序号 string lightningFolderName = $"Lightning{lightningSequenceNumber:D3}_{frameRange}"; Directory.Move(currentLightningFolderPath, Path.Combine(selectedFolderPath, lightningFolderName)); currentLightningFolderPath = null; framesCaptured = 0; // 重置计数器 lightningSequenceNumber++; // 序号自增,下一个文件夹使用002、003... }
关键说明
:D3是C#的数值格式说明符,作用是将整数转换为至少3位的十进制字符串,不足的位数用前导零补齐(比如1→"001",12→"012",123→"123")- 必须保证
lightningSequenceNumber变量在每次生成文件夹后自增,否则所有文件夹都会使用同一个序号
内容的提问来源于stack exchange,提问作者Daniel Lip
相关产品推荐
相关产品推荐

