2013-05-15 2 views
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, и comboard связался являются ComboBoxes Пожалуйста, дайте мне знать, как конкатенировать переменные в путь к файлу?

+1

Какова ценность переменной «curdiv'? – Steve

+0

Возможный дубликат [Как удалить недопустимые символы из пути и имени файла?] (Http://stackoverflow.com/questions/146134/how-to-remove-illegal-characters-from-path-and-filenames) Это решение будет позволяют удалить эти недопустимые символы из переменной 'filepath'. –

+0

Значение curdiv - это строка, которую пользователь выберет в combobox – H4x0r

ответ

5

Для конкатенации строк, чтобы сформировать действительные пути к файлам, вы должны использовать Path class и его метод Path.Combine

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

Обратите внимание, как метод принимает массив строк и объединить их вместе, чтобы сформировать правильный путь к файлу, вставив правильную где необходимо.

Конечно сам переменная curdiv не должен содержать недопустимые символы в имени файла, как те, которые вы можете получить от метода GetInvalidFileNameChars

Вы можете попытаться удалить недопустимые символы с кодом, как это, но правильный подход должен быть не разрешать недопустимые имена в полевых списках

Dim invalidFileChars() As Char = Path.GetInvalidFileNameChars() 
for each c in invalidFileChars 
    curdiv = curdiv.Replace(c.ToString(), "") 
Next 
+0

На самом деле переменная curdiv имеет пробел, так что я обрезал это и РЕШАЯ !!!!!!! – H4x0r

+0

Рад вам, также обратите внимание, что мой ответ предполагал, что curdiv - это папка, а не имя файла, я обновлю ответ сейчас – Steve

+0

Спасибо за ваше время, Steve :) Приятного дня – H4x0r

Смежные вопросы