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

本文关键字:ASP NET 文件 重命名 有意义 | 更新日期: 2023-09-27 17:48:56

编码平台:ASP。. NET 4.0 c#

考虑以下场景:

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

我知道如何使用GUID或通过分配临时名称来使文件名唯一。
但我需要的是一个类似windows资源管理器的解决方案。哪一种方法是最好的?

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

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

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

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