C# 将多个文件类型保存到一个文件中

C# 将多个文件类型保存到一个文件中,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我正在开发一个3D应用程序,用户可以在其中加载多个图像,我使用的3D库具有将整个场景导出为XAML的功能,当然在XAML中,我只有图像的路径,因此文件仅在创建它的机器上有效,我要做的是保存XAML,更改图像XAML中的路径要相对于XAML文件路径,请将图像沿XAML保存在同一新文件中,这样新文件将始终包含XAML和图像。如何在同一文件中保存多个文件类型?如果您使用的是.NET 4.5,那么您可以通过编程将多个文件保存到一个zip文件夹中,使用新的 首先,您需要将文件准备到一个新文件夹(Direc

我正在开发一个3D应用程序,用户可以在其中加载多个图像,我使用的3D库具有将整个场景导出为XAML的功能,当然在XAML中,我只有图像的路径,因此文件仅在创建它的机器上有效,我要做的是保存XAML,更改图像XAML中的路径要相对于XAML文件路径,请将图像沿XAML保存在同一新文件中,这样新文件将始终包含XAML和图像。如何在同一文件中保存多个文件类型?如果您使用的是.NET 4.5,那么您可以通过编程将多个文件保存到一个zip文件夹中,使用新的

首先,您需要将文件准备到一个新文件夹(
Directory.CreateDirectory
File.Move
)中,然后您只需使用(从链接页面改编):


更新>>>

对于.NET4,您可能需要更多地依赖第三方库。您可以从CodePlex上的页面下载
DotNetZip
库。它也相当简单。以下是链接页面中的示例:

using (ZipFile zip = new ZipFile())
{
    // add this map file into the "images" directory in the zip archive
    zip.AddFile("c:\\images\\personal\\7440-N49th.png", "images");
    // add the report into a different directory in the archive
    zip.AddFile("c:\\Reports\\2008-Regional-Sales-Report.pdf", "files");
    zip.AddFile("ReadMe.txt");
    zip.Save("MyZipFile.zip");
}
  • 将XAML和其他图像文件存储到一个文件中(例如zip或cab)
  • 运行程序时,将相关文件解压缩到临时文件夹中,以便相关路径正常工作
  • 如果需要,随后清空临时文件夹

  • 您可以将所有内容保存在zip文件中谢谢您的回复,我正在考虑这一点,但当我解压以将文件重新加载到我的应用程序中时,当然我只想在内存中执行此操作,XAML中的相对图像路径将如何工作?为什么是内存,您可以将相关文件解压缩到临时文件夹中,并在处理完后将其删除。感谢您的建议,您可以在一个答案中总结所有这些内容,我会将其标记为正确答案不幸的是,我使用的是4.0
    using (ZipFile zip = new ZipFile())
    {
        // add this map file into the "images" directory in the zip archive
        zip.AddFile("c:\\images\\personal\\7440-N49th.png", "images");
        // add the report into a different directory in the archive
        zip.AddFile("c:\\Reports\\2008-Regional-Sales-Report.pdf", "files");
        zip.AddFile("ReadMe.txt");
        zip.Save("MyZipFile.zip");
    }