0

非常に単純に聞こえますが、検索したところ、ユーザーが Windows フォーム アプリから作成したばかりのログ ファイルを開く方法が見つからないようです。ファイルが終了します。作成後に開きたいだけです。

Dim path As String = TextBox1.Textユーザー名があり、savefiledialogで[OK]をクリックすると、「完了」というメッセージボックスがあり、[OK]を押すと、これを試しました

FileOpen(FreeFile, path, OpenMode.Input)しかし、何も起こりません。ログを開いてユーザーに表示して、ユーザーが編集または保存できるようにしたいだけです。

これは、上記のコードを取得した場所です。 http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.filesystem.fileopen.aspx

誰もがファイルを「開いて」実行時に処理しようとしているため、検索は困難です。誰かがそれをダブルクリックしたように、私はそれShowでファイルをしようとしています。Launchingこれがエクスポートボタン全体で、サブをクリックします。基本的にリストボックスの項目をファイルに書き込みます。

Private Sub btnExport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExport.Click

    Dim sfd As New SaveFileDialog
    Dim path As String = TextBox1.Text
    Dim arypath() As String = Split(TextBox1.Text, "\")
    Dim pathDate As String
    Dim foldername As String
    foldername = arypath(arypath.Length - 1)

    pathDate = Now.ToString("yyyy-MM-dd") & "_" & Now.ToString("hh;mm")
    sfd.FileName = "FileScannerResults " & Chr(39) & foldername & Chr(39) & " " & pathDate

    sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal)
    sfd.Filter = "Text files (*.txt)|*.txt|CSV Files (*.csv)|*.csv"
    sfd.ShowDialog()

    path = sfd.FileName

    Using SW As New IO.StreamWriter(path)

        If CkbxFolder.Checked = True Then
            SW.WriteLine("Folders")
            For Each itm As String In ListBox1.Items
                SW.WriteLine(itm)
            Next
        End If

        If CkbxFiles.Checked = True Then
            SW.WriteLine("Files")
            For Each itm As String In ListBox2.Items
                SW.WriteLine(itm)
            Next
        End If

    End Using
    MsgBox("Done...")
    FileOpen(FreeFile, path, OpenMode.Input) 'Why can't I open a file for you...

End Sub
4

2 に答える 2

1

古い VB6 メソッドを使用しないでください。それらは互換性の理由からまだここにあり、新しいコードは System.IO 名前空間のより強力なメソッドを使用する必要があります。

ただし、コメントで述べたように、 FileOpen は何も表示せず、ファイルを開くだけです

あなたは書くことができます

Using  sr = new StreamReader(path)
    Dim line = sr.ReadLine()
    if !string.IsNullOrEmpty(line) Then
       textBoxForLog.AppendText(line)
    End If
End Using

または単に(ファイルが大きすぎない場合)

Dim myLogText = File.ReadAllText(path)
textBoxForLog.Text = myLogText

別の方法として、ファイル拡張子に関連付けられたプログラムを実行し、ファイルを表示するようにオペレーティング システムに依頼することもできます。

Process.Start(path)
于 2013-08-06T20:11:58.650 に答える