none
用File.Create和FileStream创建的文件为何有些扩展名的文件是损坏的?

    问题

  • 我发现用File.create创建docx、txt没有问题,创建压缩包,pptx,xlsx文件。打开文件提示损坏。这样怎么解决?用Windows的右击空白处创建文件没有问题。
    2016年12月30日 8:46

答案

  • 一个可行的方法是将这些格式的文件(ppt,xlsx),以嵌入的资源的方式保存到程序集,实际创建相应格式的文件时,从程序集中读取字节流(嵌入的资源文件),保存到磁盘中。

    我以前也实践过如何创建一个access数据库文件,一直没有成功,后来看到有朋友读取一个空的access数据库文件,将它转化为字节流(或字符串格式),保存在代码中或程序集中,实际需要时再保存到硬盘中即可达到创建新文件的目的。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年12月31日 4:28

全部回复

  • 一个可行的方法是将这些格式的文件(ppt,xlsx),以嵌入的资源的方式保存到程序集,实际创建相应格式的文件时,从程序集中读取字节流(嵌入的资源文件),保存到磁盘中。

    我以前也实践过如何创建一个access数据库文件,一直没有成功,后来看到有朋友读取一个空的access数据库文件,将它转化为字节流(或字符串格式),保存在代码中或程序集中,实际需要时再保存到硬盘中即可达到创建新文件的目的。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年12月31日 4:28
  • 一个可行的方法是将这些格式的文件(ppt,xlsx),以嵌入的资源的方式保存到程序集,实际创建相应格式的文件时,从程序集中读取字节流(嵌入的资源文件),保存到磁盘中。

    我以前也实践过如何创建一个access数据库文件,一直没有成功,后来看到有朋友读取一个空的access数据库文件,将它转化为字节流(或字符串格式),保存在代码中或程序集中,实际需要时再保存到硬盘中即可达到创建新文件的目的。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    你这个方法跟"在应用程序目录下某个文件夹保存不同扩展名的空文件,用户点击"创建",然后复制空文件到那个创建的目录位置"差不多
    2017年1月1日 3:44