检查一个文件是否存在,以及它是否没有从嵌入的资源中创建它

问题描述:

我不知道为什么我无法得到这个工作,我发现很多谷歌的答案,但没有一个似乎适用于我。检查一个文件是否存在,以及它是否没有从嵌入的资源中创建它

我的程序在运行时需要一个名为“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://*.com/questions/3314140/how-to-read-embedded-resource-text-file – 2012-02-01 00:54:04

我想你的存储默认单词列表作为一种资源。如果你是,你可能需要类似的东西,

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

lol。太简单。谢谢。 – 2012-02-01 01:05:20

你有没有试过使用完整路径像@“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