2012-04-09 8 views
0

私は奇妙な問題を抱えています。 アップロードしたファイルをデータベースに保存した後、アップロードしたファイル をアップロードフォルダから削除しようとしました。File.Delete()は実行モードでは動作しませんが、デバッグモードでのみ動作します

これはデバッグモードで正常に動作しますが、実行モードではファイルは削除されません。

誰でもこの問題に直面しましたか?

これは、以下の4

コードスニペット.NETにある:IMO

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(パス)に提供されているパスに問題があります。リリースモードでのチェックイン・パス

If the file to be deleted does not exist, no exception is thrown. 

http://msdn.microsoft.com/en-us/library/system.io.file.delete.aspxにACC以来。 binフォルダのRelease and Debug Folderと関係があります。

2

Nikhilの答えを追加するには、をpathに設定してリリースモードにして、パスが正しいかどうかを手動で確認することをおすすめします。

注:MessageBoxを忘れずに削除してください。

+0

+1です –

関連する問題