我有一个奇怪的问题。 我将上传的文件保存到数据库,然后尝试删除上传的文件 来自上传文件夹。
这在调试模式下工作正常,但在运行模式下,文件仍未删除。
有人遇到过这个问题吗?
这是.NET 4
以下代码段:
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;
}
}
答案 0 :(得分:2)
IMO因为它在调试模式下工作,所以这不是编码问题。问题在于为File.Delete(路径)提供的路径。自acc http://msdn.microsoft.com/en-us/library/system.io.file.delete.aspx
If the file to be deleted does not exist, no exception is thrown.
在发布模式下检查路径。可能与bin文件夹中的Release和Debug Folder有关。
答案 1 :(得分:2)
要添加到Nikhil的答案,我建议将MessageBox
与path
置于发布模式,并手动检查路径是否正确。
注意:不要忘记删除之后的MessageBox
。