是否可以在类中包含一个文件

时间:2011-06-23 12:59:14

标签: c# visual-studio-2010 file-io

有没有办法在类中包含文件内容,而不仅仅是文本文件,还有二进制文件,如Char Array或{{1它可能是地球上的任何东西,所以在构造函数中我的类应该将该内容写入指定文件中的文件

此文件可以是.exe,.pdf,.xls,.xml等...

4 个答案:

答案 0 :(得分:3)

我不完全确定你的意思是包含“类内的文件内容”,但是我猜你的意思是什么(将整个文件存储在类中?)你可能想看看Base64编码是什么一种编码方案,可以将任何二进制数据转换为ASCII字符串。

要存储二进制数据,您可以使用byte[]将任何Convert.ToBase64String转换为Base64编码的字符串,并将其存储在您的班级中。要取回它,请使用Convert.FromBase64String获取byte[]

答案 1 :(得分:1)

就像cbley一样,我也不确定你的意思,但你可能意味着在你的程序集中嵌入一个文件?

  • 进入Visual Studio,点击“添加现有项目”并选择您的文件。
  • 将文件上的Build Action更改为“Embedded Resource”

运行应用程序时,可以将文件二进制文件解压缩到文件系统中。

//make sure MyNameSpace.MyFile.xls is the fully qualified name in your assembly to the file
using (Stream stream = Assembly.GetManifestResourceStream("MyNameSpace.Myfile.xls"))
{
   byte[] buf = new byte[stream.Length];
   stream.Read(buf, 0, stream.Length);
   File.WriteAllBytes(@"C:\MyFile.xls", buf);
}

答案 2 :(得分:0)

查看File.ReadAllBytes()方法。

答案 3 :(得分:0)

这是可能的,只需将文件内容存储为字节数组。编写一个转换器,以您需要的格式将指定文件的字节保存到文本文件中(因此它代表一个数组)。然后将其剪切并粘贴到您的源代码中。