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