Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 作为资源嵌入的Read.txt_C#_.net - Fatal编程技术网

C# 作为资源嵌入的Read.txt

C# 作为资源嵌入的Read.txt,c#,.net,C#,.net,我在代码中嵌入了一个资源,我想读取文本并将文本应用于一些字符串变量。我已经解决了如何在使用外部文件时执行此操作,但我只需要.exe string setting_file = "config.txt"; string complete = File.ReadAllText(setting_file); string Filename = complete.Split('@').Last(); //"Test.zip"; string URL = complete.Split('@').Firs

我在代码中嵌入了一个资源,我想读取文本并将文本应用于一些字符串变量。我已经解决了如何在使用外部文件时执行此操作,但我只需要.exe

string setting_file = "config.txt";
string complete = File.ReadAllText(setting_file);
string Filename = complete.Split('@').Last(); //"Test.zip"; 
string URL = complete.Split('@').First();
如何读取resource config.txt
(最好没有新的过程)

这就是如何使用嵌入式文件
属性.Resources.yourfilename
文件
仅用于访问文件系统,而您的文件不再在系统中,因此这一行需要更改。正如其他人用链接的答案暗示的那样,您需要获取资源流,然后阅读它。可以调用以下方法来替换
文件.ReadAllText
方法调用

private static string GetTextResourceFile(string resourceName)
{
    var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName);
    using (var sr = new StreamReader(stream))
    {
        return sr.ReadToEnd();
    }
}
resourceName将是类似于
MyNamespace.Myfile.txt
的内容。如果在查找resourcename时遇到问题,则程序集上的方法
getManifestResourceName
将帮助您在调试时识别它

另外值得注意的是,如果找不到资源,上述方法将引发异常。这应该在实际代码中处理,但我不想将上面的示例与标准错误处理代码混淆


另请参阅具有相同答案的不同问题(不同之处在于它只询问流,但实际上流似乎是访问嵌入式资源文件的唯一方式)。

可能的重复不是完全重复,因为这里的问题是关于使用资源文件而不更改代码(如果可能)。虽然我可以想象更改
文件.ReadAllText
可能是可以接受的,但更改为使用流是一个更大的更改…请参阅我的文章,这似乎只适用于通过资源管理器添加的字符串。不是作为资源嵌入的文件。。。