.net File.Delete()不在运行模式下工作,但仅在调试模式下工作
我有一个奇怪的问题。 我将上传的文件保存到数据库,然后尝试删除上传的文件 从上传文件夹 这在调试模式下可以正常工作,但在运行模式下,文件保持未删除状态 有人面临这个问题吗 这是.NET4 下面的代码片段:.net File.Delete()不在运行模式下工作,但仅在调试模式下工作,.net,c#-4.0,file-io,.net,C# 4.0,File Io,我有一个奇怪的问题。 我将上传的文件保存到数据库,然后尝试删除上传的文件 从上传文件夹 这在调试模式下可以正常工作,但在运行模式下,文件保持未删除状态 有人面临这个问题吗 这是.NET4 下面的代码片段: private string SaveFiles(string rootFolder) { var uploadedPhotos = GetAllFilesUploaded(); foreach (var file in uploadedFiles) { s
private string SaveFiles(string rootFolder)
{
var uploadedPhotos = GetAllFilesUploaded();
foreach (var file in uploadedFiles)
{
string path= Path.Combine(rootFolder, "userfile", file.FileName);
FileService.SaveUploadedFile(fileName, GetBytesFromLocalFile(path));
File.Delete(path); <-- this only works in debug mode!!
}
}
public static byte[] GetBytesFromLocalFile(string filePath)
{
using (FileStream fs = new FileStream(filePath, FileMode.Open))
{
byte[] bytes = new byte[fs.Length];
fs.Read(bytes, 0, (int)fs.Length);
return bytes;
}
}
私有字符串保存文件(字符串根文件夹)
{
var uploadedPhotos=getAllFilesUpload();
foreach(上传文件中的var文件)
{
字符串路径=path.Combine(根文件夹,“userfile”,file.FileName);
SaveUploadedFile(文件名,GetBytesFromLocalFile(路径));
File.Delete(path);IMO因为它在调试模式下工作,所以这没有编码问题。问题在于为File.Delete(path)提供的路径。因为acc
在发布模式下检查路径。这可能与bin文件夹中的发布和调试文件夹有关。IMO因为它在调试模式下工作,所以这不是编码问题。问题在于为File.Delete(path)提供的路径。自acc到
检查发布模式下的路径。可能与bin文件夹中的Release和Debug文件夹有关。要添加到Nikhil的答案中,我建议在发布模式下放置一个带有路径的消息框
,并手动检查路径是否正确
注意:不要忘了在之后移除消息框。要添加到Nikhil的答案中,我建议将消息框
和路径
放在释放模式下,手动检查路径是否正确
注意:不要忘记在之后删除消息框。我遇到了同样的问题。你解决过这个问题吗?我遇到了同样的问题。你解决过这个问题吗?
If the file to be deleted does not exist, no exception is thrown.