无法使用 c# asp.net 删除文件夹

Not able to delete folder using c# asp.net

如果指定的目录存在,我想从文件夹中删除所有文件。我尝试使用以下代码,但它给了我错误

Additional information: Could not find a part of the path 'D:\Username\VSATFINAL_353\VSATTSSRSurvey\NESSPATH\VSAT\SignedDoc\I-KA-CTPR-ENB-9016C3.pdf'.

我尝试使用以下代码,但它不起作用。

protected void delete_ServerClick(object sender, EventArgs e)
    {
        string strServerFolder = "";            
        string strSapID = EncryptDecrypt.Decrypt(HttpUtility.UrlDecode(Request.QueryString["SapId"]));
        string strCandidateId = EncryptDecrypt.Decrypt(HttpUtility.UrlDecode(Request.QueryString["CandidateId"]));


        strServerFolder = Server.MapPath(ConfigurationManager.AppSettings["VSATSharedPath"].ToString() + strSAPCandidate + @"\" + "SignedDoc" + @"\");

        string strFilePath = Server.MapPath(ConfigurationManager.AppSettings["VSATSharedPath"].ToString() + strSAPCandidate + @"\" + "SignedDoc" + @"\" + strSapID + "_" + strCandidateId + ".pdf" + @"\");

        if (!Directory.Exists(strServerFolder))
        {
            Directory.Delete(strFilePath);
        }
    }

您要删除的是目录而不是文件:

    if (!Directory.Exists(strServerFolder))
    {
        Directory.Delete(strFilePath);
    }

尝试

    if (!File.Exists(strServerFolder))
    {
        File.Delete(strFilePath);
    }

如果要删除文件,应该使用File.Delete方法。而且,您应该检查文件是否存在,而不是目录。如果目录不存在,检查文件时会得到false,更重要的是,目录可能存在,但文件可能仍然丢失,您将无法删除它。 所以,你应该:

if (File.Exists(strFilePath))
{
    File.Delete(strFilePath);
}

此外,如果目录 不存在 则您尝试删除,这根据定义是不可能的,并且在碰巧没有目录时总是抛出异常(如果它在那里,它会被忽略)。

文档包含所有可以抛出的异常https://msdn.microsoft.com/en-us/library/system.io.file.delete(v=vs.110).aspx#Anchor_1

try
{
    File.Delete(strFilePath);
}
catch (DirectoryNotFoundException ex)
{
    //File not found
}
catch (IOException ex)
{
    //File in use
}
catch (UnauthorizedAccessException ex)
{
    //Access denied
}