2012-04-09 4 views
0

У меня возникла странная проблема. Я сохраняю загруженный файл в базу данных, а затем попытаюсь удалить загруженный файл из папки для загрузки.File.Delete() не работает в режиме работы, но работает только в режиме отладки

Это прекрасно работает в режиме отладки, но в режиме выполнения файл остается неустановленным.

Кто-нибудь сталкивался с этой проблемой?

Это .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

У меня такая же проблема. Вы когда-нибудь это решали? – Jelling

ответ

2

ИМО, так как он работает в режиме отладки, то это не проблема кодирования. Проблема заключается в вашем пути, который предоставляется для File.Delete (путь). поскольку в соответствии с пунктом 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.

2

Чтобы добавить ответ Никхиля, я предлагаю положить MessageBox с path в режиме деблокирования и вручную проверить, является ли путь правильным.

ПРИМЕЧАНИЕ: Не забудьте удалить MessageBox после.

+0

+1 от меня за ваш ответ –

Смежные вопросы