2016-03-22 12 views
-1

これは私の最初の質問ですStackoverflowC#を使用して任意のファイルを他の任意の形式(.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; 
      //} 


     } 
    } 
} 

} 
+0

この新しいフォーマットに変換する方法を説明する必要があります。そして、この形式は何ですか?あなたの質問から少し奇妙でunnessessaryようです。 – Alex

+1

テキストファイルツールを使ってバイナリファイルを読み込んでいるように見える –

答えて

1

あなたがやっているすべてはあなたの.rjb形式に1つまたは複数のファイルを保存し、そのままそれを取り戻すしたいされている場合は、これはアーカイブファイルを作成するようにたくさんの音。その場合は、標準のzipファイルを使用して拡張機能をカスタマイズするだけでよいでしょう。

はここZipArchiveクラスを使用した例です:

using System.IO.Compression; 

namespace CustomZip 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string startPath = @"c:\example\start"; 
      string zipPath = @"c:\example\result.rjb"; 
      string extractPath = @"c:\example\extract"; 

      ZipFile.CreateFromDirectory(startPath, zipPath); 

      ZipFile.ExtractToDirectory(zipPath, extractPath); 
     } 
    } 
} 

プロジェクトにSystem.IO.Compression.FileSystemへの参照を追加する必要があります。

+0

ありがとうございますdigitalnoizありがとうございます.zipのようなものが欲しいですが、zip canbeはいずれかのファイルで抽出できますので、データはプライベート(保護)されません、パスワードで保護されていない場合! &たくさんのファイルにはあま​​りにも多くのパスワードを覚えておくのも便利ではありません。だから、私はそのようなファイル形式(.rjb)が、ファイルが元の形式で特別な設計されたプログラムによって開かれるようにしたい。ですから、どのように達成できるか教えてください。もう一度ありがとうございます。 :) –

関連する問題