2015-11-25 52 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

相關問題