C#_ASP.NET
(C#, ASP.NET) 파일명 중복 체크, FileUpload
코딩ABC
2023. 4. 18. 08:13
반응형
파일 업로드에서 파일명이 중복된 경우 파일명을 ..(1), ..(2)와 같은 형태로 변경해서 중복되지 않도록 파일명을 변경합니다.
aa.c --> aa(1).c
aa.c --> aa(2).c
(2023-05-05 코드 수정)
using System.IO;
...
public string DuplicateFile(string dir, string filename)
{
string file = Path.GetFileNameWithoutExtension(filename);
string ext = Path.GetExtension(filename);
string new_filename = filename;
string temp_filename = String.Empty;
int cnt = 1;
while (File.Exists(new_filename))
{
temp_filename = String.Format("{0}({1})", file, cnt++);
new_filename = Path.Combine(dir + "\\" + temp_filename + ext);
}
return temp_filename + ext; // 파일명만 반환
}
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string filename = FileUpload1.FileName;
string file1 = Server.MapPath("/pub") + "\\" + filename;
// 파일명 중복 체크
if (File.Exists(file1))
filename = DuplicateFile(Server.MapPath("/pub"), file1);
file1 = Server.MapPath("/pub") + "\\" + filename;
FileUpload1.SaveAs(file1);
HyperLink1.NavigateUrl = "pub/" + filename;
HyperLink1.Text = filename;
ListBox1.Items.Clear();
ListBox1.Items.Add("파일명:" + file1);
ListBox1.Items.Add("파일명(filename):" + filename);
ListBox1.Items.Add("파일크기:" +
FileUpload1.PostedFile.ContentLength);
ListBox1.Items.Add("파일타입:" +
FileUpload1.PostedFile.ContentType);
}
}
반응형
반응형