7

データベースにバイト配列としてあるファイルのコピーを作成しようとしています。これを行う最も簡単な方法を探しています。SOおよびその他の場所では、答えは次のようになります。

File.WriteAllBytes(string newfilepath, byte[] theFile);

ただし、File クラスからほとんど何も使用できません。File.インテリセンスを入力するとすぐに、その下に赤い線が描画され、次のように表示されます。

cannot choose method from method group did you intend to invoke the method?

これは非常に一般的な質問であり、解決策はおそらく非常に単純なものであると認識していますが、私の人生ではそれを理解することはできません. 何か案は?

そして、ここにファイルを作成しようとするコードがあります:

    var labProcessOrderLetter = from obj1 in context.LabArticles
                                join obj2 in context.ProcessLabs
                                on obj1.ProcessForLabID equals obj2.ID
                                where obj1.ID == _articleId
                                select obj2.LetterAttachment;

    byte[] thePDFLetter = (byte[]) labProcessOrderLetter.FirstOrDefault();

    var uploadPath = Server.MapPath("~/_TEMP/PDF");
    var tempfilename = Guid.NewGuid().ToString();
    var tempfilenameandlocation = Path.Combine(uploadPath, Path.GetFileName(tempfilename));

    File.WriteAllBytes( tempfilenameandlocation, thePDFLetter);

編集:明らかに、名前空間を既にインポートしておりSystem.IO、プロジェクトのどこにも File というメソッドまたはクラスがなく、File で始まることさえありません。

4

2 に答える 2

20

と呼ばれる(同じクラスの)自分に見えるメソッドがあるようですFile。これは、よりも優先して選択されSystem.IO.Fileます。したがって、名前を完全に修飾する必要があります。

System.IO.File.WriteAllBytes(tempfilenameandlocation, thePDFLetter);

(実際、十分な手がかりが問題に含まれていました。それController.Fileは範囲内です)

于 2012-12-19T08:09:05.167 に答える