static void Main(string[] args)
{
int a=0000001;
for (int i=0; i <= 5; i++)
{
File.Copy(@"C:\SR\30758668.pdf", @"C:\SR\"+a+"_30758668.pdf",true);
a++;
}
Console.WriteLine("\nSuccessful");
Console.ReadLine();
}
我上面的程序用前导字符串复制1个文件5次。
就像这个文件30758668.pdf
应该像0000001_30758668.pdf
,0000002_30758668.pdf`,
0000003_30758668.pdf`一样明智地创建。
现在使用1_30758668.pdf
和2_30758668.pdf
创建文件我不希望这样。
我没有得到转换为整数或字符串的位置?
答案 0 :(得分:7)
int
没有格式化; 01与1相同,与00000001相同 - 它们都只是1。
使用:
.... + a.ToString().PadLeft(7,'0') + ...
答案 1 :(得分:1)
使用String.Format。即:
File.Copy(@"C:\SR\30758668.pdf", "C:\SR\" + a.Tostring("000000") + "_30758668.pdf", true);
或者使用String.Format来更好地构建字符串:
File.Copy(@"C:\SR\30758668.pdf", String.Format(@"C:\SR\{0}_30758668.pdf", a.ToString("000000")), true);
答案 2 :(得分:0)
显式填充的替代方法是在ToString()
或string.Format()
中使用Dx格式说明符:
例如:
File.Copy(@"C:\SR\30758668.pdf", @"C:\SR\" + a.ToString("D7") + "_30758668.pdf",true);
答案 3 :(得分:0)
您无法在数字数据类型上指定前导零。 您需要将其转换为String并使用PadLeft将其填充为您想要的字符。 PadLeft的第一个参数表示所需字符串的总宽度,第二个参数表示将用于填充的字符。
int a=1;
for (int i=0; i <= 5; i++)
{
File.Copy(@"C:\SR\30758668.pdf", @"C:\SR\"+ a.ToString().PadLeft(7, "0")+ "_30758668.pdf",true);
}
Console.WriteLine("\nSuccessful");
Console.ReadLine();
}