大家好!!
我想请较一个问题.由于不是很懂vb.net.
用visual c#写的这个程序怎么样可以在vb.net里面转换呢?自己试了,但是总是出错.
希望大家能够指点指点......谢谢了!!!
以下是用visual c#写的用下列代码替换Form1.cs中的button2的Click事件对应的处理代码,下列代码功能是根据文件选择对话框获得文件所在的目录,为后面的文件合并做准备:private void button2_Click ( object sender , System.EventArgs e ) 
{
 openFileDialog1.Title ="请选择要合并的第一个文件" ;
 System.Windows.Forms.DialogResult drTemp = openFileDialog1.ShowDialog ( ) ;
 if ( drTemp == DialogResult.OK && openFileDialog1.FileName != "" ) 
 {
  textBox1.Text = openFileDialog1.FileName ;
 }
 string[ ] path = openFileDialog1.FileName .Split ( @"\".ToCharArray ( ) ) ;
 string sTemp = "" ;
 int i= 0 ;
 for ( i= 0 ; i < path.Length - 1 ; i++ ) 
 {
  sTemp = sTemp + path[ i ] + @"\" ;
 }
 button1.Enabled = true ;
 sDirectoryName= sTemp ;
 //获得文件所在目录

 用下列代码替换Form1.cs中的button1的Click事件对应的处理代码,下列代码功能是合并获得的文件所在目录里面的所有文件,并生成合并文件:private void button1_Click ( object sender , System.EventArgs e ) 
{
 string[ ] arrFileNames = Directory.GetFiles ( sDirectoryName ) ; 
 //获取存放分割后小文件所在目录所在的所有小文件
 int iSumFile = arrFileNames.Length ;
 progressBar1.Maximum = iSumFile ;
 FileStream AddStream = new FileStream ( textBox2.Text , FileMode.OpenOrCreate ) ; 
 //以合并后的文件名称和打开方式来创建、初始化FileStream文件流
 BinaryWriter AddWriter = new BinaryWriter ( AddStream ) ; 
 //以FileStream文件流来初始化BinaryWriter书写器,此用以合并分割的文件
 /*循环合并小文件,并生成合并文件 */
 for ( int i = 0 ; i < iSumFile ; i++ ) 
 {
  FileStream TempStream = new FileStream ( arrFileNames[ i ] , FileMode.Open ) ; 
  //以小文件所对应的文件名称和打开模式来初始化FileStream文件流,起读取分割作用
  BinaryReader TempReader = new BinaryReader ( TempStream ) ; 
  //用FileStream文件流来初始化BinaryReader文件阅读器,也起读取分割文件作用
  AddWriter.Write ( TempReader.ReadBytes ( ( int ) TempStream.Length ) ) ; 
  //读取分割文件中的数据,并生成合并后文件
  TempReader.Close ( ) ; 
  //关闭BinaryReader文件阅读器
  TempStream.Close ( ) ; 
  //关闭FileStream文件流
  progressBar1.Value = i + 1 ;
  //显示合并进程
 }
 AddWriter.Close ( ) ; 
 //关闭BinaryWriter文件书写器
 AddStream.Close ( ) ; 
 //关闭FileStream文件流
 MessageBox.Show ( "成功合并!" ) ;
 progressBar1.Value = 0 ;

解决方案 »

  1.   

    csc /t:library /out:MyCodeLibrary.dll 你的源代码.cs编译成组件库,被VB。net去调用,最简单的方法
      

  2.   

    我VB。net也不熟,但看你的程序,难度也不大啊,查一下VB的语法改写一下,不就完了
      

  3.   

    Private Sub button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button2.Click 
     openFileDialog1.Title ="请选择要合并的第一个文件"
     Dim drTemp As System.Windows.Forms.DialogResult = openFileDialog1.ShowDialog()
     if ( drTemp == DialogResult.OK && openFileDialog1.FileName != "" ) 
      If drTemp == DialogResult.OK And openFileDialog1.FileName.Length > 0 Then
       textBox1.Text = openFileDialog1.FileName ;
     End If
      Dim path As String() = openFileDialog1.FileName.Split("\")
      Dim sTemp As String = ""
      
      For i As Integer = 0 To UBound(path) - 1
       sTemp = sTemp + path(i) + "\" ;
     Next
     button1.Enabled = true 
     sDirectoryName= sTemp 
     //获得文件所在目录
    End SubPrivate Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button1.Click   Dim arrFileNames As String() = Directory.GetFiles(sDirectoryName)
     //获取存放分割后小文件所在目录所在的所有小文件
      Dim iSumFile As Integer = arrFileNames.Length
     progressBar1.Maximum = iSumFile
     
      Dim AddStream As FileStream = New FileStream(textBox2.Text, FileMode.OpenOrCreate) //以合并后的文件名称和打开方式来创建、初始化FileStream文件流
      Dim AddWriter As BinaryWriter = New BinaryWriter(AddStream) //以FileStream文件流来初始化BinaryWriter书写器,此用以合并分割的文件
     /*循环合并小文件,并生成合并文件 */
     for ( int i = 0 ; i < iSumFile ; i++ ) 
      For i As Integer = 0 To UBound(iSumFile)
        Dim TempStream As FileStream = New FileStream(arrFileNames(i), FileMode.Open)
      //以小文件所对应的文件名称和打开模式来初始化FileStream文件流,起读取分割作用
        Dim TempReader As BinaryReader = New BinaryReader(TempStream)
      //用FileStream文件流来初始化BinaryReader文件阅读器,也起读取分割文件作用
        AddWriter.Write(TempReader.ReadBytes(CType(TempStream.Length, Integer)))
      //读取分割文件中的数据,并生成合并后文件
      TempReader.Close( ) 
      //关闭BinaryReader文件阅读器
      TempStream.Close( )
      //关闭FileStream文件流
      progressBar1.Value = i + 1
      //显示合并进程
     Next AddWriter.Close( ) //关闭BinaryWriter文件书写器
     AddStream.Close( ) //关闭FileStream文件流
     MessageBox.Show( "成功合并!" )
     progressBar1.Value = 0
    End Sub 
      

  4.   

    Private Sub button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button2.Click 
     openFileDialog1.Title = "请选择要合并的第一个文件"
     Dim drTemp As System.Windows.Forms.DialogResult = openFileDialog1.ShowDialog()
     If drTemp == DialogResult.OK And openFileDialog1.FileName.Length > 0 Then
       textBox1.Text = openFileDialog1.FileName
     End If
      Dim path As String() = openFileDialog1.FileName.Split("\")
      Dim sTemp As String = ""
      
      For i As Integer = 0 To UBound(path) - 1
       sTemp = sTemp + path(i) + "\" 
     Next
     button1.Enabled = true 
     sDirectoryName= sTemp 
     '//获得文件所在目录
    End SubPrivate Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button1.Click   Dim arrFileNames As String() = Directory.GetFiles(sDirectoryName)
     '//获取存放分割后小文件所在目录所在的所有小文件
      Dim iSumFile As Integer = arrFileNames.Length
     progressBar1.Maximum = iSumFile
     
      Dim AddStream As FileStream = New FileStream(textBox2.Text, FileMode.OpenOrCreate) '//以合并后的文件名称和打开方式来创建、初始化FileStream文件流
      Dim AddWriter As BinaryWriter = New BinaryWriter(AddStream) '//以FileStream文件流来初始化BinaryWriter书写器,此用以合并分割的文件
     '/*循环合并小文件,并生成合并文件 */
     For i As Integer = 0 To UBound(iSumFile)
        Dim TempStream As FileStream = New FileStream(arrFileNames(i), FileMode.Open)
      '//以小文件所对应的文件名称和打开模式来初始化FileStream文件流,起读取分割作用
        Dim TempReader As BinaryReader = New BinaryReader(TempStream)
      '//用FileStream文件流来初始化BinaryReader文件阅读器,也起读取分割文件作用
        AddWriter.Write(TempReader.ReadBytes(CType(TempStream.Length, Integer)))
      '//读取分割文件中的数据,并生成合并后文件
      TempReader.Close() 
      '//关闭BinaryReader文件阅读器
      TempStream.Close()
      '//关闭FileStream文件流
      progressBar1.Value = i + 1
      '//显示合并进程
     Next AddWriter.Close() '//关闭BinaryWriter文件书写器
     AddStream.Close()  '//关闭FileStream文件流
     MessageBox.Show( "成功合并!" )
     progressBar1.Value = 0
    End Sub