使用ASP.NET有意义地自动重命名文件

时间:2011-04-03 19:47:05

标签: c# asp.net logic file-rename

编码平台:ASP.NET 4.0 C#

请考虑以下情况。

我正在使用asp:FileUpload将名为“StackOverflow.doc”的文件上传到文件夹Documents 但是文件夹文件已经有一个名为“StackOverflow.doc”的文件 在这种情况下,我想将我的文件重命名为StackOverflow(1).doc。

我知道如何使用GUID或指定临时名称使文件名唯一 但我需要的是像浏览器一样的Windows资源管理器。哪种方法最好?

P.S:解决方案应该是多余的。也就是说,如果有名为StackOverflow.doc和StackOverflow(1).doc的文件,我的重命名文件应为StackOverflow(2).doc

1 个答案:

答案 0 :(得分:3)

以下是获取文件名的一种方法(为简洁起见,未包含文件路径逻辑):

string fileName = downloadFileName;
string fileExt = downloadFileExtention;

string fullFileName = string.Format("{0}.{1}", fileName, fileExt);

int counter = 0;
while(File.Exists(fullFileName))
{
    counter++;
    fullFileName = string.Format("{0}({1}).{2}", fileName, counter, fileExt);
}

// Write the file to fullFileName