这是一个上传工具。我正在尝试重命名文件名,如果它已存在于该文件夹中。 计划是在文件名后添加一个数字。例如,如果文件名是Hello.doc,则它将保存为Hello2.doc。
问题是,文件名&文件类型总是不同的。它可以是Goodbye.pdf / capture.png。我不知道如何将数字插入正确的位置。
if (System.IO.File.Exists(savepath))
{
int counter = 2;
while (System.IO.File.Exists(savepath))
{
string newFileName = fileName + counter;
tempFileName = newFileName.Insert/replace //Not sure what to do here
savepath += tempFileName;
counter++;
}
FileUpload.SaveAs(savepath);
lblUpload.Text = "A file with the same name already exists." + " Your file was saved as " + tempFileName;
}
有人知道吗?谢谢!
答案 0 :(得分:1)
如果您正在寻找,请告诉我。使用StringBuilder避免在每次连接后创建新的String对象。
String[] filepath = filename.split(".");
// filepath[0] -> filename
// filepath[1] -> extension
StringBuilder newFilename = new StringBuilder(filepath[0]);
// add number
newFilename.append(2);
// add period
newFilename.append(".");
// add extension
newFilename.append(filepath[1]);
return newFilename.toString();