无法从C#项目读取文件

时间:2019-05-26 19:41:40

标签: c# .net

问题是我无法读取添加到项目中的文件到路径:

<MyProject>/Files/Icons/Material

我尝试使用以下代码段读取代码

public Stream GetIcon(string iconName)
{
    var iconPath = Path.Combine( "Files","Icons","Material",iconName);
    return File.Create(path);
}

但是,它显示该文件不存在的错误。 请帮忙。

1 个答案:

答案 0 :(得分:1)

根据您问题的标签,我假设您需要将文件复制到程序集的二进制目录中。因此,需要多个步骤:

  1. 将所有图像文件添加为Content,然后将CopyToOutputDirectory选项设置为Always

    <Content Include="Files\Icons\Material\some-icon.png">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>     
    

    在大多数IDE中,您可以右键单击文件并设置这些选项。或直接编辑cproj文件。

  2. 使用bin输出目录作为基础目录,解析正确的路径,然后将其与其他部分合并。

    var assemblyBinDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
            AppDomain.CurrentDomain.RelativeSearchPath ?? "");
    var iconPath = Path.Combine(assemblyBinDir, "Files","Icons","Material",iconName);
    

希望这将有助于解决问题。