我正在尝试创建我的数据库中的文件副本作为字节数组,我正在寻找最简单的方法来实现这一点,并且在SO和其他任何地方答案似乎是:
File.WriteAllBytes(string newfilepath, byte[] theFile);
但是我无法使用File类中的任何内容,只要我输入File.
intellisense就会在其下面画一条红线并说:
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开头。
答案 0 :(得分:19)
听起来你有一个方法,你可以看到(在同一个类中,称为File
)。这将优先选择System.IO.File
。因此,您需要完全限定名称:
System.IO.File.WriteAllBytes(tempfilenameandlocation, thePDFLetter);
(事实上,问题中有足够的线索。这是范围内的Controller.File
)
答案 1 :(得分:1)
控制器已经定义了一个文件,用于以一种很好的方式输出文件。只需使用System.IO.File
完全限定它