2015-10-17 8 views
0

Привет я успешно использовал код пыльник в начале, но я не знаю, что я сделал, так что перестал создавать файл MessageIO.dat в папке (ProgramFiles)\UniWin Activator DataFile.Create (путь) Ошибка VB.NET

я использовал этот код: (результат: создается только папка UniWin Activator Data)

Dim UniWinPath As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "UniWin Activator Data") 
Directory.CreateDirectory(UniWinPath) 

Dim MsgIO = Path.Combine(UniWinPath, "\MessageIO.dat") 
File.Create(MsgIO) 

и использовали это: (результат: ошибка в команде File.Create)

Dim UniWinPath As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "UniWin Activator Data\MessageIO.dat") 
File.Create(UniWinPath) 

и использовал это: (результат: ничего не произошло)

Dim UniWinPath As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "UniWin Activator Data") 
Dim MsgIO = Path.Combine(UniWinPath, "\MessageIO.dat") 
File.Create(MsgIO) 

что способ создать этот файл? (У меня уже есть права администратора)

+0

Какая ошибка во втором коде? –

+0

Убедитесь, что строка UniWinPath не содержит обратную косую черту в конце. Две строки, объединенные, могут закончиться двойным черным пятном - я не знаю, имеет ли значение это значение, но стоит решить проблему –

+0

, во втором случае ошибка была «не могла найти часть пути», –

ответ

0

Первый из ваших кодов в порядке. Просто измените Dim MsgIO = Path.Combine(UniWinPath, "\MessageIO.dat") на Dim MsgIO = Path.Combine(UniWinPath, "MessageIO.dat"). (Удалите обратную косую черту). Path.Combine автоматически добавляет один. И, как всегда, чтобы получить доступ к специальным каталогам, убедитесь, что у вас есть Администраторы Privilleges. Причина, по которой последние два кода не работают, заключается в том, что File.Create создает файл в существующем каталоге. Он не может создать сам каталог.

0

При объединении путей вы не должны указывать символ «\» при начале второго элемента пути, так как это будет означать путь корня! , например, Path.Combine («D: \ Folder1», «\ MessageIO.dat») приведет к «\ MessageIO.dat». но вы должны написать Path.Combine («D: \ Folder1», «MessageIO.dat»), который вернет «D: \ Folder1 \ MessageIO.dat»

Примечание: в окнах 7 или выше доступ к специальным папки, такие как Program Files, требуют специальных разрешений! убедитесь, что ваше приложение имеет такое разрешение. (сначала вы можете проверить другую папку norman, чтобы убедиться, что другие части вашего кода в порядке)

+0

Я попробую это сейчас, кстати, у меня уже есть права администратора по файлу app.manifest –

+0

это сработало, но добавив еще 1 вещь: создайте каталог, затем создайте файл messageio.dat –

+0

, я сказал, что вам нужно удалить первую обратную косую черту из начало второго парама в path.combine. принятый ответ тот же, почему вы не принимали мои? –

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