You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不将文件设为资源的情况下访问dll项目内文件夹中的文件

解决方法

1. 配置文件生成属性

首先对dll项目中存放文件的文件夹/对应文件做属性配置:

  • 选中目标文件夹或其下所有文件,在属性面板将「生成操作」设置为无,「复制到输出目录」设置为如果较新则复制。
  • 后续新增文件只要继承该配置,编译时就会自动同步到输出目录的对应层级,无需修改资源配置或重新编译核心逻辑。

2. 代码中读取文件夹

你可以通过获取dll自身所在目录,拼接目标文件夹路径实现访问,示例代码如下:

兼容全.NET版本的写法

using System.IO;
using System.Reflection;

// 获取当前运行的dll所在目录
string dllDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
// 拼接你的文件夹名称,比如你的文件夹叫FileStorage就填"FileStorage"
string targetFolder = Path.Combine(dllDir, "你的文件夹名");

if (Directory.Exists(targetFolder))
{
    // 读取所有文件示例
    string[] allFiles = Directory.GetFiles(targetFolder, "*.*", SearchOption.AllDirectories);
    foreach (string file in allFiles)
    {
        // 自定义文件处理逻辑
        string content = File.ReadAllText(file);
    }
}

.NET Core/.NET 5+ 简化写法

该写法兼容单文件发布场景:

using System.IO;

string targetFolder = Path.Combine(AppContext.BaseDirectory, "你的文件夹名");
// 后续文件处理逻辑同上

注意事项

  • 当该dll被其他主项目引用时,只要dll项目的文件属性配置正确,主项目编译时会自动将对应文件夹同步到自身输出目录,无需额外配置。
  • 运行时可直接往程序运行目录下的对应文件夹新增/删除文件,无需重新编译dll或主项目,完全适配文件数量不固定的需求。

项目结构参考:
项目文件夹结构示例

内容的提问来源于stack exchange,提问作者Alex Pertenava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 03:54:05