Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C# WPF file resource
Hey,
 
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");
                icon.Save(IconStream);
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");
              writer.Write(Properties.Resources.test);
(resources.test being a .chm file)
 
thanks!
Posted 7-Aug-12 0:47am
mog13326
Comments
efkah at 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: bad
good
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))
    {
Assembly.GetExecutingAssembly().GetManifestResourceStream(fileName).CopyTo(fileStream);
    }
}
 
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.
  Permalink  

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



Advertise | Privacy | Mobile
Web02 | 2.8.140827.1 | Last Updated 7 Aug 2012
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

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