これは私のコードです
protected void btnAdd_Click(object sender, EventArgs e)
{
if (FileUploadControl.HasFile)
{
try
{
string filename = Path.GetFileName(FileUploadControl.FileName);
switch(SubDrpDownList.SelectedIndex)
{
case 0:
if (!File.Exists(filename))
FileUploadControl.SaveAs(Server.MapPath("~/Books/Math/") + filename);
else if (File.Exists(filename))
{
throw new DuplicateWaitObjectException();
}
break;
case 1:
if (!File.Exists(filename))
FileUploadControl.SaveAs(Server.MapPath("~/Books/Physics/") + filename);
else if (File.Exists(filename))
{
throw new DuplicateWaitObjectException();
}
break;
case 2:
if (!File.Exists(filename))
FileUploadControl.SaveAs(Server.MapPath("~/Books/Drawing/") + filename);
else if (File.Exists(filename))
{
throw new DuplicateWaitObjectException();
}
break;
}
lblStatus.Text = "Upload status: File uploaded!";
}
catch (Exception ex)
{
lblStatus.Text = "Upload status: The file could not be uploaded. The following error occured: " + ex.Message;
}
}
}
カテゴリに応じて、switch ステートメントを使用して達成した diffrenet フォルダーに書籍をアップロードしたいと考えています。問題は、本をアップロードしてからもう一度アップロードすると、File.Exists(filename) が機能しないことです。私が欲しいのは、同じファイルを2回アップロードした場合、重複したファイルがアップロードされようとしているという例外をスローしたいということです。ただし、case ステートメントの場合、ファイルが重複している場合でも、行 !File.Exists(filename)) のみが実行されます。File.Exists(filename)) が実行されないのはなぜですか??