2016-12-28 3 views
0

File.WriteAllBytes()で複数の画像を保存しようとしていますが、 'Thread.Sleep() ..File.WriteAllBytesを使用して複数の画像を保存すると最後の画像のみが保存されます

私のコード:

 byte[] signatureBytes = Convert.FromBase64String(model.Signature); 
     byte[] idBytes = Convert.FromBase64String(model.IdCapture); 

     //Saving the images as PNG extension. 
     FileManager.SaveFile(signatureBytes, dirName, directoryPath, signatureFileName); 
     FileManager.SaveFile(idBytes, dirName, directoryPath, captureFileName); 

SAVEFILE機能:

public static void SaveFile(byte[] imageBytes, string dirName, string path, string fileName, string fileExt = "jpg") 
    { 
     if (!string.IsNullOrEmpty(dirName) 
      && !string.IsNullOrEmpty(path) 
      && !string.IsNullOrEmpty(fileName) 
      && imageBytes.Length > 0) 
     { 
      var dirPath = Path.Combine(path, dirName); 

      var di = new DirectoryInfo(dirPath); 

      if (!di.Exists) 
       di.Create(); 

      if (di.Exists) 
      { 
       File.WriteAllBytes(dirPath + [email protected]"\{fileName}.{fileExt}", imageBytes); 
      } 
     } 
     else 
      throw new Exception("File cannot be created, one of the parameters are null or empty."); 
    } 
+1

*機能していないとはどういう意味ですか?あなたは例外を取得していますか? – MarcinJuraszek

+1

はい、このコードサンプルに基づいて推測することはできますが、両方の呼び出しで同じファイル名を再利用している可能性があります。 – BlakeH

+0

ファイル名は異なりますが、例外はありません。結果は1つのファイルがプログラムの最後に保存されている –

答えて

0

別に可能性から( di.Create()と呼ばれた、場合、私は驚かれることでしょう

 var di = new DirectoryInfo(dirPath); 

     if (!di.Exists) 
      di.Create(); 

     if (di.Exists) 
     { 
      ... 
     } 

Existsプロペ:あなたが同じファイルを上書きしている@Daniel)で述べたように、私はこのコードについてはよく分かりませんrtyが更新されます。実際には、ではなく、が更新されました。

ディレクトリがでない場合、が存在する場合、ディレクトリを作成しても条件付き部分は入力しません。それはあなたの問題を説明できますか?

+0

ありがとう、右.. –

2

File.WriteAllBytes():

"新しいファイルを作成し、指定されたバイト配列をファイルに書き込み、ファイルを閉じます。ターゲット・ファイルがすでに存在する場合、それはでexpecifyとして」

上書きされます:あなたは最後のものだけを見ることができるのであれば、あなたはファイルを上書きしている https://msdn.microsoft.com/en-ca/library/system.io.file.writeallbytes(v=vs.110).aspx

+0

私が前にコメントしたように、私はファイルのために異なるバイト配列と異なる名前を使用しています..それはなぜ私がそれについて混乱しているのです –