0
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应该创建为0000003_30758668.pdf` 一样明智。0000001_30758668.pdf0000002_30758668.pdf`,

现在它创建文件,1_30758668.pdf2_30758668.pdf不想要这种方式。

我没有在哪里转换为整数或字符串?

4

4 回答 4

7

并且int没有格式化;01 与 1 相同 与 00000001 相同 - 它们都只是 1。

利用:

 .... + a.ToString().PadLeft(7,'0') + ...
于 2012-05-24T14:25:11.027 回答
1

使用字符串格式。IE:

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);
于 2012-05-24T14:27:15.953 回答
0

显式填充的替代方法是仅使用 Dx 格式说明符 onToString()或 in string.Format()

例如:

File.Copy(@"C:\SR\30758668.pdf", @"C:\SR\" + a.ToString("D7") + "_30758668.pdf",true);
于 2012-05-24T14:27:22.863 回答
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(); 

    }
于 2012-05-24T14:30:50.217 回答