1

编码平台:ASP.NET 4.0 C#

考虑以下场景。

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

我确实知道如何使用 GUID 或通过分配临时名称来使文件名唯一。
但我需要的是一个类似 Windows 资源管理器的解决方案。接近它的最佳方法是什么?

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

4

1 回答 1

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
于 2011-04-03T19:54:36.057 回答