2015-11-25 155 views
1

我需要将一组20个txt文件保存到我的解决方案中,以便将它们包含到exe文件中。以这种方式,我将能够发送给最终用户只有可执行文件和其他任何东西。链接到解决方案c中的本地文本文件#

我需要使用下面的函数:

File.Copy(sourcePath, @path + "\\FileName.txt"); 

复制的20个文件中的一个到另一个目录(根据用户的请求)。为了将20个txt文件包含到解决方案中,我在解决方案资源管理器中创建了一个新文件夹,并将它们放入其中。然后我选择“资源”到单个txt文件的选项中。假设文件夹的名称是FOO,文件是NAME01,那么我假设单个txt文件的本地地址是“\ FOO \ NAME01.txt”。但是这不起作用,我得到了与sourcePath相关的File.Copy函数的一个arror。

你有什么建议吗?我在这个问题上堆积如山,在网上找不到任何解决方案。非常感谢!

+0

尝试移动到文件夹相同的地方,该.exe是 – ivan

+0

如果它们被嵌入的资源,那么你需要阅读从嵌入的资源流和手动复制出来。也许[这个知识库教程](https://support.microsoft.com/en-us/kb/319292)可以帮助你。 –

回答

2

步骤1:将文件添加到您的项目

enter image description here

第2步:让他们嵌入资源

enter image description here

步骤3:导出它们在运行时文件系统:

using System.Reflection; 

namespace ConsoleApplication1 
{ 
    class Program4 
    { 
     public static void Main(string[] args) 
     { 
      using(var stream = Assembly.GetExecutingAssembly() 
       .GetManifestResourceStream("ConsoleApplication1.Files.TextFile1.txt")) 
      using (var filestream = System.IO.File.OpenWrite("target.txt")) 
      { 
       stream.CopyTo(filestream); 
       filestream.Flush(); 
       filestream.Close(); 
       stream.Close(); 
      } 
     } 
    } 
} 
  • “ConsoleApplication1.Files.TextFile1.txt” 来源于:
    • ConsoleApplication1:包含文件
    • Files.TextFile1.txt项目的默认命名空间:相对路径,星罗棋布的DLL(看@截图里面1)
+0

非常感谢,这真的很好! – Emanuele