2012-02-01 63 views
1

我不知道爲什麼我無法得到這個工作,我發現很多谷歌的答案,但沒有一個似乎適用於我。檢查一個文件是否存在,以及它是否沒有從嵌入的資源中創建它

我的程序在運行時需要一個名爲「wordlist.txt」的磁盤上的文件,與可執行文件位於同一目錄中。所以,我在我的構造函數代碼,以檢查它是否存在,如果不從嵌入的資源

public Form1() 
{ 
    InitializeComponent(); 

    if (!File.Exists("wordlist.txt")) 
    { 
     byte[] ba = File.ReadAllBytes(Properties.Resources.wordlist); 
     File.WriteAllBytes("wordlist.txt", ba); 
    } 
} 

它告訴我,我有非法字符在我的道路,雖然在逃避它來創建它。

+0

'Properties.Resources.wordlist'的值是什麼? 'File.ReadAllBytes'接受一個文件名作爲它的第一個參數。 – 2012-02-01 00:47:40

+0

wordlist只是一個.txt文件,我已經添加爲一個emberred資源。它通過語法檢查,如果我輸入「byte [] ba = File.ReadAllBytes(Properties.Resources.wordlist);」它不 – 2012-02-01 00:51:56

+0

你可能在尋找類似這個相關問題的答案:http://stackoverflow.com/questions/3314140/how-to-read-embedded-resource-text-file – 2012-02-01 00:54:04

回答

2

我想你的存儲默認單詞列表作爲一種資源。如果你是,你可能需要類似的東西,

if (!File.Exists("wordlist.txt")) 
{ 
    File.WriteAllText("wordlist.txt", Properties.Resources.wordlist); 
} 
+0

lol。太簡單。謝謝。 – 2012-02-01 01:05:20

-1

你有沒有試過使用完整路徑像@「c:\ worldlist.txt」而不是文件名?

+0

這不會導致路徑異常,但非法字符。 – 2012-02-01 00:49:14

+0

事情是我不知道名字的路徑。它是一個便攜式的exe文件,我必須將.txt文件放在用戶運行exe的任何地方 – 2012-02-01 00:53:42

+0

你可以得到可執行文件的路徑 – c0deNinja 2012-02-01 00:54:10

相關問題