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