NullReferenceException问题

yitian661 2011-09-17 02:11:52
string sknPath = "C:\\Documents and Settings\\Administrator\\Local Settings\\Temp\\vista1.ssk";
FileInfo fi = new FileInfo(sknPath);
if(!fi.Exists)
{
Assembly asm = Assembly.GetExecutingAssembly();
Stream strm = asm.GetManifestResourceStream("vista1");
byte[] bytes = new byte[strm.Length];//这句出现异常
strm.Read(bytes,0,(int)strm.Length);
File.WriteAllBytes(sknPath,bytes);
}


这个程序该怎么改啊
...全文
85 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
机器人 2011-09-17
  • 打赏
  • 举报
回复
你的资源名称显然不对。


var assm = System.Reflection.Assembly.GetExecutingAssembly();
using (var filestream = assm.GetManifestResourceStream("MySample.Files.test.txt"))
{
using (var sr = new StreamReader(filestream))
File.WriteAllText("1.txt", sr.ReadToEnd());
}


MySample.Files.test.txt

应该是:

命名空间 + 文件夹名 + 文件名



yitian661 2011-09-17
  • 打赏
  • 举报
回复
我往程序里嵌入了一个ssk的皮肤文件,想在程序运行的时候把它释放到指定的文件夹,可以给我写一下代码吗
机器人 2011-09-17
  • 打赏
  • 举报
回复
可以通过项目属性 -> Resources -> Add Resource -> Add Existing File 添加资源

这样直接通过 Properties.Resources.资源名 就可以引用了。还是强类型的。

取得的原代码是:

object obj = ResourceManager.GetObject("xxxxx", resourceCulture);

如果说你上面的代码为什么不正确的话,需要检查:
你的资源是否带文件夹 embed ? (用 ILAsam 检查 dll,可以查看资源名)

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧