从目录asp.net中删除文件c#

时间:2015-01-28 16:11:44

标签: c# asp.net io

我正在显示网站上目录的图像,用户可以上传和删除此文件夹的内容。但是,由于某种原因,我的删除链接按钮不起作用。 这是我显示图像的代码(没有问题):

{
            string[] filesindirectory = Directory.GetFiles(Server.MapPath("~/Images/Products/"));
            List<String> images = new List<string>(filesindirectory.Count());

            foreach (string item in filesindirectory)
            {
                images.Add(String.Format("~/Images/Products/{0}", System.IO.Path.GetFileName(item)));
            }
            ListView1.DataSource = images;
            ListView1.DataBind();
        }

以下是我删除链接按钮的代码(这不起作用):

protected void deleteLinkButton_Click(object sender, EventArgs e)
    {
        var deleteButton = sender as LinkButton;
        string[] filesindirectory = Directory.GetFiles(Server.MapPath("~/Images/Products/{0}"));
        try
        {
            FileInfo fi = new FileInfo(Server.MapPath("~/Images/Products/"));
            fi.Delete();
            statusLabel2.Text = "Delete Image Successful!";
        }
        catch
        {
            // Display error
            statusLabel2.Text = "Delete Image Failed";
        }
        ListView1.DataBind();
    }

当我尝试删除文件时,我收到此错误: System.IO.DirectoryNotFoundException:找不到路径的一部分

我的堆栈跟踪显示:

System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath)+359    System.IO.FileSystemEnumerableIterator 1.CommonInit() +268 System.IO.FileSystemEnumerableIterator 1..ctor(String path,String originalUserPath,String searchPattern,SearchOption searchOption,SearchResultHandler`1 resultHandler,Boolean checkHost)+445    System.IO.Directory.GetFiles(String path)+70

2 个答案:

答案 0 :(得分:2)

指定无效的搜索路径"~/Images/Products/{0}"会导致错误 - 不确定它应该是什么。

您正在尝试将目录删除为文件 - 因此下一个错误将出现在此行:

FileInfo fi = new FileInfo(Server.MapPath("~/Images/Products/"));
fi.Delete()

答案 1 :(得分:1)

FileInfo fi = new FileInfo(Server.MapPath("~/Images/Products/"));

在这里,您尝试将目录作为文件

启动
string[] filesindirectory = Directory.GetFiles(Server.MapPath("~/Images/Products/{0}"));

这里你的目录路径无效 - 这个会抛出你的异常