scorpio 7 Denunciar post Postado Julho 30, 2008 Porque quando eu mando abrir um arquivo ini que está na pasta do windows, ele busca na pasta do projeto ? Tenho que ler um arquivo ini, dai criei uma função pra isso, porque a do windows nao queria trabalhar. Private Function LeArquivoINI(ByVal file_name As String, ByVal section_name As String, ByVal key_name As String, ByVal default_value As String) As String Dim FileRead As New System.IO.StreamReader(file_name) Dim strArq As String = FileRead.ReadToEnd Dim KeyPos As Integer Dim Valor As String = "" Dim SectionPos As Integer = InStr(1, strArq, section_name) If (SectionPos > 0) Then KeyPos = InStr(SectionPos, strArq, key_name) Dim linha As String = Mid(strArq, KeyPos, InStr(KeyPos, strArq, vbCrLf) - KeyPos) While (KeyPos >= 0 And Valor = "") linha = Mid(strArq, KeyPos - 1, IIf(InStr(KeyPos, strArq, vbCrLf) > 0, InStr(KeyPos, strArq, vbCrLf), strArq.Length + 1) - KeyPos + 1) If (Mid(linha, 1, 1) <> ";") Then Valor = Trim(Mid(linha, InStr(linha, "=") + 1, linha.Length - InStr(linha, "=") + 1)) End If KeyPos = InStr(KeyPos + key_name.Length, strArq, key_name) End While If Valor = "" Then Valor = default_value End If End If Return Valor 'le o arquivo ini 'Const MAX_LENGTH As Integer = 500 'Dim string_builder As New StringBuilder(MAX_LENGTH) 'GetPrivateProfileString(section_name, key_name, default_value, string_builder, MAX_LENGTH, file_name) 'Return string_builder.ToString() End FunctionSó que, passo de parametro pra ela o nome do arquivo, que no caso ta tem '[X]:\Windows\automato.ini', dai passei assim"%Systemroot%\automato.ini". Mas o bendito .Net busca na pasta Debug do projeto 'C:\SS300000\SS300000\SS300000\bin\Debug\%systemroot%\automato.ini'. Porque disso? Há outra forma de pegar a pasta do windows ? Se alguem também souber sobre ler arquivo ini, me diga por favor :) Compartilhar este post Link para o post Compartilhar em outros sites
scorpio 7 Denunciar post Postado Julho 30, 2008 Ae, achei pra retornar o caminho da pasta windows, ou outra variavel do windows! Dim sWinDir As String = System.Environment.GetEnvironmentVariable("systemroot") Valeu! Compartilhar este post Link para o post Compartilhar em outros sites