我正在使用ASP.NET项目,用户可以将文件上传到服务器。我想用其原始名称保存文件,但如果同名文件已经存在,我如何生成一个文件名,括号中有一个数字,就像Windows一样?
文件被上传到一个特定的文件夹,并以其客户端名称本身保存。因此,如果上传了一个名为 myimage.jpg 的文件,并且服务器中已经存在同名文件,则需要将其重命名为 myimage(1).jpg,或者如果存在'myimage(n).jpg',则需要将其重命名为 myimage(n+1).jpg。
搜索和生成这样的文件名的最佳方法是什么?我的第一个猜测是使用LINQ和DirectoryInfo.EnumerateFiles()
上的正则表达式,但这是一个好方法吗?
3条答案
按热度按时间bnl4lu3b1#
如果具有相同原始名称的文件不必按上传日期/时间排序,您可以简单地将 System.Guid.NewGuid().ToString() 附加到文件名。
ttisahbt2#
字符串
ht4b089n3#
你不需要LINQ或正则表达式。
如果原始文件名存在,则将
(1)
附加到名称。如果存在,将
(2)
附加到(原始)名称。等等......