无法使用 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
}
如果指定的目录存在,我想从文件夹中删除所有文件。我尝试使用以下代码,但它给了我错误
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
}