Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.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# 我可以用File.open在C中打开resourcepath吗#_C#_Resources_Filestream - Fatal编程技术网

C# 我可以用File.open在C中打开resourcepath吗#

C# 我可以用File.open在C中打开resourcepath吗#,c#,resources,filestream,C#,Resources,Filestream,我试着用这行代码在C#中打开一个resourcefile,我不明白为什么它不起作用。我尝试使用buildaction=“嵌入式资源”和“无”。 我尝试了所有复制到输出目录的方法。 我是否需要一些特殊的方法来使用c#将资源文件打开到fileStream public bool openFileStream() { 文件流; 字符串[]s=System.Reflection.Assembly.GetExecutionGassembly().GetManifestResourceNames(); 字符

我试着用这行代码在C#中打开一个resourcefile,我不明白为什么它不起作用。我尝试使用buildaction=“嵌入式资源”和“无”。 我尝试了所有复制到输出目录的方法。 我是否需要一些特殊的方法来使用c#将资源文件打开到fileStream

public bool openFileStream()
{
文件流;
字符串[]s=System.Reflection.Assembly.GetExecutionGassembly().GetManifestResourceNames();
字符串mFilename=null;
对于(int i=0;i
编辑不重复
在副本中,只需打开一个文本文件。它是用于文件流mFileStream的地址;mFileStream=File.Open(“WindowsFormsApplication2\Resources\‌​sju_tre_g_i.wav”,文件‌​eMode.Open)

如果您想从资源中打开wav文件,可以这样做

using (var steam = Properties.Resources.sju_tre_g_i)
{
     // do something       
}
请注意,这不是
文件流
,而是
非托管内存流
。(但由于ressource库已加载到内存中,所以不会有什么不同?)


如果希望确保目录存在,并且希望在存在时打开文件,在不存在时创建文件,则可以执行以下操作

var path = @"C:\mypath\myfile.txt";
Directory.CreateDirectory(path);
using (var stream = File.Open(path, FileMode.OpenOrCreate))
{
     // do something            
}

如果愿意,也可以使用相对路径。

什么不起作用?您是否遇到了错误或异常,或者您只是没有得到预期的结果?mscorlib.dlin中出现了类型为“System.IO.DirectoryNotFoundException”的第一次意外异常,重复的异常只是为了打开一个文本文件。它是用于文件流mFileStream的地址;mFileStream=File.Open(“WindowsFormsApplication2\\Resources\\sju_tre_g_i.wav”,FileMode.Open);但是该文件在我的项目的resourcefolder中。如果找不到,那么我的处理方式就有问题。这和我之前使用的方法(File.Open)是一样的。我已经编辑了这个问题,以显示这个方法的完整代码。我在旧版本的nameof中找到了这个方法,我将首先寻找替代方法see@bajenmicke我摆脱了
nameof。不管怎么说,这不是必要的。谢谢你,雷克斯。使用unmanagedMemoryStream而不是FileStream,它可以完美地工作
var path = @"C:\mypath\myfile.txt";
Directory.CreateDirectory(path);
using (var stream = File.Open(path, FileMode.OpenOrCreate))
{
     // do something            
}