如何使用C#将任何文件转换为其他任意格式(.rjb)&恢复原始格式?

时间:2016-03-22 13:26:53

标签: c# file format

这是我在Stackoverflow中的第一个问题

我正在尝试将文件夹中的某些文件(.txt,.mp3,.mp4,.pdf,.png,.exe等)转换为由我创建的格式.rjb。我还想从.rjb文件中恢复原始文件。但是.txt文件以外的每个文件都会损坏。请帮助我,实现这一目标。以下代码就是我正在使用的。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace rjbformat
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if (textBox1.Text != "")
        {
            try
            {


                //string data = Convert.ToString(File.ReadAllBytes(textBox1.Text));
               // string datas = File.ReadAllText(textBox1.Text);
                //string dat = File.ReadAllText(textBox1.Text, Encoding.ASCII);
                //var dataS = Convert.ToString(datas);



                using (StreamWriter sw = new StreamWriter(textBox1.Text + ".rjb"))
                {
                    sw.Write(textBox3.Text);
                }


            }
            catch (Exception)
            {
                MessageBox.Show("Specified Input file DOESNOT EXIST!", "Error", MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
                //throw;
            }
        }
        else
        {
            MessageBox.Show("Please select Input file");
        }
    }

    private void button2_Click(object sender, EventArgs e)
    {
        openFileDialog1.Title = "Open Text File (Rajib)";
        openFileDialog1.Filter = "Text Files(*.txt;*.cod;*.ubc)|*.txt;*.cod;*.ubc";
        openFileDialog1.Filter = "All Files(*.*)|*.*";
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            textBox1.Text = openFileDialog1.FileName;
            textBox2.Text = openFileDialog1.FileName + ".rjb";
            File.Copy(textBox1.Text, textBox2.Text,true);
FileAccess.ReadWrite.ToString(textBox1.Text);


            var lines = File.ReadAllLines(textBox1.Text);
        /*    foreach (string line in lines)
            {
                textBox3.Text += line+"\r\n";
            }*/

            File.AppendAllLines(textBox2.Text, lines);


     //       FileStream fs = new FileStream(textBox1.Text, FileMode.Open);
      //      int hexIn;
      //      String hex = "";

    //        for (int i = 0; i<50/*(hexIn = fs.ReadByte()) != -1*/; i++)
      //      {
        //        hex = string.Format("{0:X2}", fs.ReadByte());
          //     // int bina = fs.ReadByte();
            //    textBox3.Text += hex;
            //}


        }
    }
}

}

1 个答案:

答案 0 :(得分:1)

如果你所做的只是将一个或多个文件存储到public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); // never generates a match routes.MapRoute( name: "ASPXFiles", url: "*.aspx", defaults: new { controller = "ASPXFiles", action = "Index" } ); // Used to process all other requests (works fine) routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } } 格式中并希望将它们原封不动,这听起来就像创建存档文件一样。在这种情况下,您可能需要考虑使用标准zip文件并自定义扩展名。

以下是使用ZipArchive类的示例:

.rjb

您需要在项目中添加对System.IO.Compression.FileSystem的引用。