文件下载命名异常:为何生成test01序列而非test1序列及修正需求
文件命名递增问题修复方案
问题根源
原代码中counter + 1.ToString()的写法是字符串拼接而非数值加法:1.ToString()会先转为字符串"1",再和counter的字符串形式拼接,所以counter为0时得到"01",为1时得到"11",以此类推,导致生成的文件名不符合预期。
修复方案
方案1:修正数值计算逻辑
先执行counter + 1的数值加法,再转为字符串:
private int counter = 0; for(int i = 0; i < 10; i++) { await DownloadFiles(downloadLinks[i], testFolder + "\\test" + (counter + 1).ToString() + ".gif"); counter++; }
方案2:直接复用循环变量
利用循环变量i的递增特性,省去额外的counter变量:
for(int i = 0; i < 10; i++) { await DownloadFiles(downloadLinks[i], testFolder + "\\test" + (i + 1).ToString() + ".gif"); }
方案3:使用字符串插值简化代码
用C#字符串插值让代码更简洁易读:
for(int i = 0; i < 10; i++) { await DownloadFiles(downloadLinks[i], $"{testFolder}\\test{i + 1}.gif"); }
内容的提问来源于stack exchange,提问作者jhon last
相关产品推荐
相关产品推荐

