Click here to Skip to main content
14,328,670 members
Rate this:
Please Sign up or sign in to vote.
See more:

I am trying to copy files stored as resources in my wpf project into a new directory.

This is to create a template set of folders with the default files populating it in the directory of the users choice. I have managed to do this with some of the easier file types like icons and plain text but am struggling with finding a way to copy others.

Is there a best way to make a copy of them other than stream reader and writer? this seemes to be handing back empty files for some files?

System.Drawing.Icon icon = Properties.Resources.icons;
              Stream IconStream = System.IO.File.OpenWrite(path+"\\Icons\\test.ico");

This works fine for an icon but the below code does not work for one of my help files; it creates it but when i look at the file it seems to be empty and wont open
  writer = new StreamWriter(path + "\\Help\\en\\test.chm");

(resources.test being a .chm file)

efkah 7-Aug-12 7:15am
if during installation then try WIX (to make a package. i guess it wont help you if want them to stay in your resx)

1 solution

Rate this:
Please Sign up or sign in to vote.

Solution 2

think there was a little misunderstanding in my last answer. here is code i actually tested and which should work.

string[] fileNames = Assembly.GetExecutingAssembly().GetManifestResourceNames();
foreach (String fileName in fileNames)
    using (FileStream fileStream = File.Create(@"c:\temp\" + fileName))

note that the resource must be marked as "embedded resources" for this to work (right click them in solution explorer, build action "embedded resources").
Maybe not 100% solved, im sorry.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100