gpt4 book ai didi

c# - 如何从 XAP 中的文本文件中读取文本?

转载 作者:太空狗 更新时间:2023-10-30 00:27:49 27 4
gpt4 key购买 nike

我正在开发一个浏览器外的 Silverlight 程序,我已经成功地让它通过 OpenFileDialog 打开本地文件。但是,现在我需要它从自己的 XAP 中打开一个文件(无需浏览,要打开的文件是硬编码的)。我正在尝试使用此代码,但它不起作用:

using (StreamReader reader = new StreamReader("Default.txt"))
{
TextBox1.Text = reader.ReadToEnd();
}

此代码抛出一个 SecurityException,表示“不允许文件操作。访问路径 'Default.txt' 被拒绝。”我做错了什么?

最佳答案

您的代码试图打开用户文件系统中某处名为“Default.txt”的文件。我不知 Prop 体在哪里,因为这取决于 Silverlight 应用程序从哪里执行。所以是的,一般来说你没有权限去那里。

要从您的 XAP 中提取一些东西,您需要以不同的方式构建流。它将沿着这些方向:

Stream s = Application.GetResourceStream(
new Uri("/MyXap;component/Path/To/Default.txt", UriKind.Relative)).Stream;
StreamReader reader = new StreamReader(s);

请注意,这意味着您的 Default.txt 应设置为“资源”,而不是“嵌入式资源”。作为“资源”,它将被添加到 XAP 中。 Embedded Resource 会将其添加到程序集中。

更多信息:http://nerddawg.blogspot.com/2008/03/silverlight-2-demystifying-uri.html

注意:如果您的 Silverlight 程序有多个程序集,请检查 Uri 字符串的“/MyXap”部分是否引用了包含该资源的程序集的名称。例如,如果您有两个程序集“ProjectName”和“ProjectName.Screens”,其中“ProjectName.Screens”包含您的资源,则使用以下内容:

new Uri("ProjectName.Screens;component/Path/To/Default.txt", UriKind.Relative))

关于c# - 如何从 XAP 中的文本文件中读取文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5045456/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com