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 and Debugフォルダーと関係があるかもしれません。

于 2012-04-09T03:30:05.673 に答える
2

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

注: after を削除することを忘れないでくださいMessageBox

于 2012-04-09T03:36:18.483 に答える