Мне нужно изменить имя файла, когда пользователи загружают из файла элемент управления загрузкой .
Если имя файла дублируется, добавляется счетчик имени файла, но здесь это не работает.
Я имею в виду, когда я загружаю файл, т.е. 00076007-2013.pdf , он сохраняется на хосте с таким именем 00076007-2013 (0) .pdf
Нокогда я снова хочу загрузить 00076007-2013.pdf на хосте, он перезаписывает последний ( 00076007-2013 (0) .pdf ).
Но я хочу, чтобы был 00076007-2013.pdf файл, сохраняемый с этим именем 00076007-2013 (1) .pdf на хосте.
Как я могу решить эту проблему.
Мой код ниже.
int count = 0;
string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
string FileExstention = Path.GetExtension(FileUpload1.FileName);
string[] files = Directory.GetFiles(Server.MapPath("/public/2Version/sk_PDF/"));
if (FileUpload1.HasFile)
{
if (FileExstention == ".pdf")
{
try
{
if (File.Exists(Server.MapPath("/public/2Version/sk_PDF/") + fileName.ToString()))
{
foreach (string s in files)
{
string filename = string.Empty;
filename = Path.GetFileName(s).Substring(0, Path.GetFileName(s).LastIndexOf("."));
if (filename.Contains("("))
{
filename = filename.Substring(0, filename.LastIndexOf("("));
}
if (filename == fileName.ToString().Trim())
{
count++;
}
FileUpload1.PostedFile.SaveAs(Server.MapPath("/public/2Version/sk_PDF/") + filename.ToString() + "(" + count.ToString() + ")" + FileExstention);
}
}
else
{
FileUpload1.PostedFile.SaveAs(Server.MapPath("/public/2Version/sk_PDF/") + fileName.ToString());
}
}
catch (Exception ex)
{
throw ex;
}
}
}
Edit # 01 Это вывод.
Я загружаю файл 00076007-2013.pdf три раза.
Первый раз в порядке, 00076007-2013.pdf .
Второй раз ОК, 00076007-2013 (0) .pdf .
Последний раз, когда он был сохранен 00076007-2013 (0) .pdf , а не 00076007-2013 (1) .pdf