在DLL中获取文件夹地址 [英] Get Folder Address In DLL

查看:174
本文介绍了在DLL中获取文件夹地址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

根据此图片:

我在Main.data Project中有一个名为Gallery的文件夹。
我在Main项目中添加了Main.Data.Dll作为参考。
我想在mainwindow窗体中显示此图像。我将图像更改为资源构建操作。
我想知道如何在主项目中获取此文件夹地址?

I have a folder named Gallery in Main.data Project. I added Main.Data.Dll as reference in main project. I want to show this images in mainwindow form.I change images build action to resource. I want to know how can i get this folder address in main project?

在mainwindow中:

in mainwindow:

 private void LoadImages()
        {
            foreach (var imgaddress in Directory.GetFiles((Here), "*.jpg", SearchOption.AllDirectories))
            {
                //Do Some...
            }
        }

我必须写什么(这里)?

What Do i must write(Here)?

推荐答案

可能有一个更优雅的解决方案,获取Main.Data中所有jpg的资源字符串或URI:

There's probably a more elegant solution, but something like this would get you the resource strings or URIs for all the jpgs in Main.Data:

private void LoadImages ()
{
    var asm = Assembly.LoadFrom("Main.Data.dll");
    var rm = new System.Resources.ResourceManager(asm.GetName().Name + ".g", asm);
    var resourceSet = rm.GetResourceSet(Thread.CurrentThread.CurrentCulture, true, true);
    var resourceUris = new List<Uri>();
    var resourceStrings = new List<String>();
    foreach (var resource in
        resourceSet.Cast<DictionaryEntry>().Where(resource => ((string) resource.Key).EndsWith("jpg")))
    {
        resourceStrings.Add((string)resource.Key);
        resourceUris.Add(
            new Uri(String.Format("pack://application:,,,/Main.Data;component/{0}",
                                    ((string) resource.Key))));
    }

    rm.ReleaseAllResources();

    // Do something with resourceStrings or resourceUris...

}

这篇关于在DLL中获取文件夹地址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆