如何在C#中使用FileOpen(VB.NET)?

时间:2014-09-12 12:02:30

标签: c# .net vb.net vb.net-to-c#

因此,我正致力于将此代码从VB.NET转换为C#:

    Public Class Form1
    Const filesplit As String = "|split|"
    Dim stub, opt() As String

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        On Error Resume Next
        FileOpen(1, Application.ExecutablePath, OpenMode.Binary, OpenAccess.Read, OpenShare.Shared)
        stub = Space(LOF(1))
        FileGet(1, stub)
        FileClose(1)
        opt = Split(stub, filesplit)

    End Sub
End Class

我使用过一系列在线转换器,但它们并不适合我。

我该怎么办?我试图理解VB.NET源代码,以便我可以使用它。

4 个答案:

答案 0 :(得分:1)

使用File.Open。那应该能得到你想要的东西。

答案 1 :(得分:1)

您的VB代码基本上是这样做的:

// The using clause ensures the StreamReader is properly disposed after the closing block.
using (StreamReader sr = File.OpenText(Application.ExecutablePath))
{
    stub = sr.ReadToEnd();
    opt = stub.Split(filesplit).ToArray();
}

这假设filesplit是char,string或类似Environment.NewLine

的东西

答案 2 :(得分:1)

这些方法位于Microsoft.VisualBasic命名空间。

所以你可以在项目中添加对的引用,然后使用几乎完全相同的代码,并对所使用的方法进行少量额外限定:

using Microsoft.VisualBasic; //add this statement

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        string filesplit = "|split|";
        string stub;
        string[] opt;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            FileSystem.FileOpen(1, Application.ExecutablePath, OpenMode.Binary, OpenAccess.Read, OpenShare.Shared);
            stub = Strings.Space(Convert.ToInt32(FileSystem.LOF(1)));
            FileSystem.FileGet(1, ref stub);
            FileSystem.FileClose(1);
            opt = Strings.Split(stub, filesplit);
        }
    }
}

但是你应该在你的VB.NET和C#代码中使用File.xxx命名空间中的System.IO方法,但这将使它适用于你。

答案 3 :(得分:0)

基本上你会使用:

Dim content = File.ReadAllText("c:\temp\MyTest.txt")

但是使用它会更正确:

Dim path As String = "c:\temp\MyTest.txt"
If File.Exists(path) Then
    Dim content = File.ReadAllText(path)
    Rem do something with content
End If