2

私は Visual Basic を初めて使用し、このコードでファイルを作成しようとしています

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim curboard As String = comboard.SelectedItem
    Dim curstd As String = comstd.SelectedItem
    Dim curdiv As String = comdiv.SelectedItem
    Dim curmed As String = commed.SelectedItem
    Dim filepath As String = "c:\program files\School Attandance Management System 1.0\data\" & curdiv & ".samsclass"

    Try
        File.Create(filepath)
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try


End Sub

これは出力します

パスに不正な文字があります

comdiv、comstd、commed、および comboard はコンボボックスです。変数をファイルパスに連結する方法を教えてください。

4

1 に答える 1

6

文字列を連結して有効なファイル パスを形成するには、Path クラスとそのメソッドPath.Combineを使用する必要があります。

Path.Combine("c:\program files\School Attandance Management System 1.0\data", 
             curdiv, ".samsclass")

このメソッドが文字列の配列を受け取り、それらを組み合わせて有効なファイル パスを形成し、必要な場所に正しいパス セパレータを挿入する方法に注目してください。

もちろん、メソッドGetInvalidFileNameCharscurdiv から取得できるものとして、変数自体に無効なファイル名文字が含まれていてはなりません。

このようなコードで無効な文字を削除しようとすることもできますが、正しいアプローチは、コンボボックスで無効な名前を許可しないことです。

Dim invalidFileChars() As Char = Path.GetInvalidFileNameChars()
for each c in invalidFileChars
    curdiv = curdiv.Replace(c.ToString(), "")
Next
于 2013-05-15T12:32:28.730 に答える