如果目录中已存在文件夹,如何增加文件夹编号

时间:2012-12-13 04:04:03

标签: c#

实施例。如果我创建了一个文件夹名称为IMG10001的文件夹,但它已存在于目标目录中。下面的代码将文件夹名称设置为IMG10001-1,但我想要完成的是如果目标目录中已存在IMG10001,则将文件夹名称增加到IMG10002。

string destinDir = dirPath + "\\" + this.Batch.BatchName;
int x = 0;
if (Directory.Exists(destinDir))
{
    do
    {
        x++;
        destinDir = dirPath + "\\" + this.Batch.BatchName + "-" + x.ToString();
    } while (Directory.Exists(destinDir));
}    
System.IO.Directory.Move(root,destinDir);

3 个答案:

答案 0 :(得分:2)

//regular expression will work
Regex reg = new Regex("IMG(\\d+)$");
Match m = reg.match(this.Batch.BatchName);
int num = 10001;
if(m.success){
    int.tryParse(m.Groups[1].value,out num);
}
Return string.format("IMG{0}",num);

我只是在输入框中写下这些代码,我还没试过。但我认为它应该有用

答案 1 :(得分:1)

假设BatchName始终以“IMG”开头,您可以将该数字拆分出文件。要确保获得最高编号,请遍历所有文件并存储找到的最高编号。

找到最高编号后,将其增加1并重建文件名(“IMG”+ newNumber)。

答案 2 :(得分:1)

您可以使用Regex从字符串中提取整数部分,并将其增加为

string YourString = "IMG10001";
int IntegerPart = Convert.ToInt16(Regex.Match(s, "\\d+").ToString());
IntegerPart++;