0

我有一个奇怪的问题。我将上传的文件保存到数据库,然后尝试从上传文件夹中删除上传的文件。

这在调试模式下工作正常,但在运行模式下,文件保持未删除。

有人遇到过这个问题吗?

这是.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;
                }
            }
4

2 回答 2

2

IMO 因为它在调试模式下工作,所以这不是编码问题。问题在于为 File.Delete(path) 提供的路径。由于符合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 文件夹有关。

于 2012-04-09T03:30:05.673 回答
2

为了补充 Nikhil 的答案,我建议在发布模式下使用 aMessageBoxpath手动检查路径是否正确。

注意:不要忘记删除MessageBox之后。

于 2012-04-09T03:36:18.483 回答