0

こんにちは、アップロードされたファイルを表示する TextBox と Fileupload コントロールとテーブルがあります...そしてテーブルに削除リンクがあります..ユーザーが送信ボタンをクリックする前にアップロードされたファイルを削除できるように...このために私はモデルを持っています

     public BugModel()
    {
        if (ListFile == null)
            ListFile = new List<BugAttachment>();
    }
    public List<BugAttachment> ListFile { get; set; }
}

public class BugAttachment
{
    public string FileName { get; set; }
    public int BugAttachmentID { get; set; }
    public string AttachmentName { get; set; }
    public int BugID { get; set; }
    public string AttachmentUrl { get; set; }
    public string AttachedBy { get; set; }
    public string ErrorMessage { get; set; }
}

ユーザーがファイルをアップロードするたびに、それらをListfileリストに保持し、テーブルに表示します..今、私が欲しいのは、アップロードされたファイルをサーバーから、またListfileからも削除したい..アップロードされたファイルフォルダからファイルを削除することに成功しました...今、ユーザーが削除リンクをクリックしたときに、ListFileからAttachmentNameとAttachmentUrlを削除したい..どうすればいいですか..どんなアイデアでも大歓迎です

これは私が今までやっていたことです

      public ActionResult Delete(string FileName, BugModel model)
    {

        if (Session["CaptureData"] == null)
        {
        }
        else
        {
            model = (BugModel)Session["CaptureData"];
        }
       char DirSeparator = System.IO.Path.DirectorySeparatorChar;

        string FilesPath = ";" + FileName;
        string filenameonly = name + Path.GetFileName(FilesPath);
        string FPath = "Content" + DirSeparator + "UploadedFiles" + DirSeparator + filenameonly;
        // Don't do anything if there is no name
        if (FileName.Length == 0) return View();
        // Set our full path for deleting
        string path = FilesPath + DirSeparator;
        // Check if our file exists
        if (System.IO.File.Exists(Path.GetFullPath(AppDomain.CurrentDomain.BaseDirectory + FPath)))
        {
            // Delete our file                System.IO.File.Delete(Path.GetFullPath(AppDomain.CurrentDomain.BaseDirectory + FPath));                 
        }            
        return View("LoadBug");
    }
4

1 に答える 1

1

が一意である場合、FileNameBugAttachments オブジェクトの新しいリストを作成し、指定された FileName を持つ特定のオブジェクトを除外できます。

List<BugAttachment> allBugAttachemnts=GetAllAttachmentsFromSomeWhere();

List<BugAttachment> newBugAttachments = allBugAttachemnts.ListFile.
                              Where(x => x.FileName!= FileName).ToList();

newBugAttachments 削除後のアイテムが表示されます。

RemoveAll元のリストを更新するメソッドを使用することもできます

allBugAttachemnts.RemoveAll(x => x.FileName!= FileName);

メソッドが指定された使用可能なオブジェクトGetAllAttachmentsFromSomeWhereのリストを返し、削除するファイル名を持つパラメーターであると仮定しますBugAttachmentBugModelFileName

于 2012-08-31T12:25:34.437 に答える