下载文件从资源库中的C#.NET(Download Files From Resource Libr

2019-09-26 13:58发布

我正在开发,其中来自多个屏幕的用户必须下载一个示例文件(Excel文件)一起工作的应用程序。 什么将是这样做的最好的方式。

我在做什么是

将文件放置在应用程序执行和下载使用Application.StartupPath文件的目录。 这不听起来像一个很好的解决方案。 截至随时随地用户可以编辑文件或删除文件或这样的事情。

我想要做的是

我想从资源添加的所有文件在我的资源和下载文件。 我添加的文件,但我需要关于如何从资源下载的帮助不大。

谢谢

Answer 1:

您可以使用:

 class ResourceHelper
    {
           public static void MakeFileOutOfAStream(string stream, string filePath)
            {
                using(var fs = new FileStream(filePath,FileMode.Create,FileAccess.ReadWrite))
                {
                    CopyStream(GetStream(stream), fs);
                }
            }

            static void CopyStream(Stream input, Stream output)
            {
                byte[] buffer = new byte[32768];
                int read;
                while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
                {
                    output.Write(buffer, 0, read);
                }
            }
 static Stream GetStream(string stream)
        {
             return Assembly.GetExecutingAssembly().GetManifestResourceStream(stream));

        }
    }

与流过你的资源的完整名称,即命名空间+资源文件名(evantual文件夹都将被视为命名空间部分)区分大小写。 请记住,标志项目作为嵌入的资源文件。



Answer 2:

您可以使用Assembly.GetManifestResourceStream并保存一些文件流与它合作。 下面是一个简单的例子:

using (var resource = Assembly.GetManifestResourceStream("resource_key"))
using (var file = File.OpenWrite(filename))
{
    var buffer = new byte[1024];
    int len;
    while ((len = resource.Read(buffer, 0, buffer.Length)) > 0)
    {
        file.Write(buffer, 0, len);
    }  
}

请注意。 有没有办法来存储文件更改回资源。



文章来源: Download Files From Resource Library in c# .net