实施例。如果我创建了一个文件夹名称为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);
答案 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++;