2015-06-14 7 views
0

Добрый вечер всем вам! У меня проблема, которую я не могу решить с помощью метода GetFullPath в vb.net.GetFullPath нет вывода?! VB.NET

Что я хочу сделать:

Я хотел бы получить полный путь текстового файла (test.txt), который находится в той же папке, что и App.exe, один я работа над. Мне нужен полный путь для использования другого метода. Чтобы узнать больше о причине, в которой она не работает, я помещаю вывод GetFullPath в MsgBox.

Что происходит:

MsgBox просто показывает пустой. Это действительно странно, потому что, даже если test.txt не существует, выход должен существовать (как будто файл существует). ВНИМАНИЕ: в моем случае файл существует

документации: https://msdn.microsoft.com/en-us/library/system.io.path.getfullpath(v=vs.100).aspx Cf. «Замечания»

Что я думаю о том, что:

Возможно ли, что app.exe не видит test.txt, который находится в той же папке? Я так не думаю, это даст изгиб. Возможно, это проблема разрешения? Я действительно не знаю, почему MsgBox пуст.

Мой мир кода:

Dim file1 As String = "test.txt" MsgBox(GetFullPath(file1))

Thankyou для всех, кто попытается помочь мне. Имейте славный день! :)
Прошу прощения за мой бедный английский. Microsoft Visual Studio 2010.

+0

ли Вы, случайно, исполняющим этот кусок кода в 'Load' случае вашей формы и вы используете 64-разрядную версию Windows? – MicroVirus

+0

Я выполняю его при нажатии кнопки, и да, я использую 64-битную Windows 7. Также метод ReadAllText() ничего не показывает. – MisterX

+0

'System.IO.GetFullPath()' возвращает абсолютный путь для указанной строки пути. Это не ** ** найти файл для вас - он просто работает с переданной строкой. Если в строке нет диска или каталога, возможно, в возврате – Plutonix

ответ

0

Что-то в вашем коде меняет рабочий каталог (или, в случае Windows XP, он не устанавливается должным образом). Функция GetFullPath, представленная ниже, вернет путь, который, как я полагаю, вы ожидаете, независимо от рабочего каталога.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    MessageBox.Show(GetFullPath("file.txt")) 
End Sub 

Private Function GetFullPath(fileName As String) As String 
    Return IO.Path.Combine(Application.StartupPath, fileName) 
End Function 
+0

Большое спасибо Aeonhack! Я действительно не понимаю, почему это не сработало, но ваше решение решило мою проблему. :) Приятного дня! – MisterX

+0

Кстати, вы знаете, почему ReadAllText (GetFullPath ("test.txt")) ничего не возвращает? Возможно ли, что у меня нет разрешения на его чтение? На этой неделе действительно странные вещи ... – MisterX

+0

Может ли проблема быть в файле FileIOPermissionAcess.Read? Я не понимаю, как его использовать. Спасибо за вашу помощь! – MisterX

0

Или вы можете сделать это,

Label1.Text = Application.StartupPath 

Вы делаете все с этим кодом ^^