 VB.NET - Usando a classe Path
  VB.NET - Usando a classe Path
Com o advento da plataforma .NET , programar ficou muito mais fácil para quem usava o Visual Basic. O VB .NET incorpora um conjunto de classes com poderosos recursos que facilitam a codificação e poupam o tempo de desenvolvimento.
Neste artigo vou falar sobre o Namespace System.IO e em como ele pode facilitar a vida do programador Visual Basic. Como existem muitas classes neste namespace irei começar falando da classe Path e alguns dos seus métodos.
Se você já precisou fazer tratamento de arquivos no VB sabe que existe toda uma codificação para trabalhar com arquivos , nomes de arquivos , extensão de arquivo , caminho de arquivo , etc.
Vou fazer uma comparação entre a forma de codificar usada no VB6 e a nova forma usando a classe Path. Para isto a primeira coisa é definir algumas variáveis que serão usadas no projeto:
     
 Dim 
TesteCaminho 
As
String
      Dim 
nPos 
As
Integer
      Dim 
sNomeArquivo 
As
String
      Dim 
sCaminhoCompleto 
As
String
      Dim 
sExt 
As
String
      TesteCaminho = "c:\teste\vbnet\teste.txt"
A seguir irei realizar algumas tarefas e mostrar como se fazia antes e como se faz agora:
1- Obter o caminho de um arquivo a partir de uma string que contém o caminho e o nome do arquivo:
| ' obtem o caminho no  vb6 nPos = InStrRev(TestePath, "\") sCaminhoCompleto = Mid(TestePath, 1, nPos - 1) MsgBox(sCaminhoCompleto) | ' 
    obtem o caminho no VB .NET sCaminhoCompleto = Path.GetDirectoryName(TestePath) MsgBox(sCaminhoCompleto) | 
| VB 6 | VB .NET | 
2- Obter a extensão de um arquivo a partir de uma string que contém o caminho e o nome do arquivo:
| ' 
    obtem extensão no  VB6 nPos = InStrRev(TesteCaminho, ".") sExt = Mid(TesteCaminho, nPos) MsgBox(sExt) | '
    obtem extensão no VB .NET sExt = Path.GetExtension(TesteCaminho) MsgBox(sExt) | 
| VB 6 | VB .NET | 
3- Obter o nome de um arquivo a partir de uma string que contém o caminho e o nome do arquivo:
| '
    obtem nome do arquivo no  VB6 nPos = InStrRev(TesteCaminho, "\") sNomeArquivo = Mid(TesteCaminho, nPos + 1) nPos = InStr(sNomeArquivo, ".") sNomeArquivo = Mid(sNomeArquivo, 1, nPos - 1) MsgBox(sNomeArquivo) | ' 
    obtem nome do arquivo no VB .NET sNomeArquivo = Path.GetFileNameWithoutExtension(TesteCaminho) MsgBox(sNomeArquivo) | 
| VB 6 | VB .NET | 
4- Obter a raiz de um arquivo a partir de uma string que contém o caminho e o nome do arquivo:
| ' 
    obtem a raiz do diretorio do caminho no VB6 nPos = InStr(TesteCaminho, "\") sRaiz = Mid(TesteCaminho, 1, nPos) sRaiz = Mid(TesteCaminho, 1, InStr(TesteCaminho, "\")) MsgBox(sRaiz) | '
    obtem a raiz do diretorio do caminho no VB .NET sRaiz = Path.GetPathRoot(TesteCaminho) MsgBox(sRaiz) | 
| VB 6 | VB .NET | 
5- Alterar a extensão de um arquivo a partir de uma string que contém o caminho e o nome do arquivo. No exemplo abaixo estou alterando a extensão de txt para xml.
| ' 
    Substituindo a extensão de um arquivo no VB6 Dim xmlExt As String nPos = InStrRev(TesteCaminho, ".") xmlExt = Mid(TesteCaminho, 1, nPos) & "xml" MsgBox(xmlExt) | '' 
    Substituindo a extensão de um arquivo no VB.NET xmlExt = Path.ChangeExtension(TesteCaminho, "xml") MsgBox(xmlExt) | 
| VB 6 | VB .NET | 
6- Criar um arquivo com nome único para evitar conflitos com outros arquivos porventura já existentes.
| ' 
    criando um arquivo de nome único no VB6. Dim sArqTemp As String Dim h As Integer h = FreeFile() Do sArqTemp = "c:\Temp" & Format(Now, "HHmmss") Try FileOpen(h,sArqTemp, OpenMode.Output, OpenAccess.Write) Catch ex As Exception End Try If IO.File.Exists(sFN) Then Exit Do End If Loop MsgBox(sArqTemp) | '' 
    criando um arquivo de nome único no VB.NET Dim sArqTemp As String = Path.GetTempFileName() MsgBox(sArqTemp) | 
| VB 6 | VB .NET | 
Existem muitos mais métodos a serem explorados e com certeza o resultado final será menos código necessário para realizar a mesma tarefa antes feita no VB 6.
Até o próximo artigo VB.NET .

José Carlos Macoratti