Ir para o conteúdo
goldspy98

Dúvida sobre obtenção de nomes de arquivos

Mensagens Recomendadas

goldspy98

Olá, eu sou novo aqui na comunidade por isso se estiver a postar na área errada peço desculpa.

O meu problema é o seguinte estou fazendo um programa com o objectivo de conseguir obter todos os files de um determinado directorio e seus Md5 para um file .txt ele realmente faz isso mas quando põem o caminho do file no .txt fica o caminho todo (ex: C:\User\user\Desktop\Teste\pasta1\arquivo1.exe) e eu só queria que no file aparece-se (ex: \pasta1\arquivo1.exe).

PS: O diretorio delecionado seria a pasta ...\Teste

PS2: Estou a usar o Visual Studio 2012

Isto foi o que já fiz (não sei se tudo está correto pois sou novo na área de programação) :)

Public Class Form1
Private Function getFileMd5(ByVal filePath As String) As String
 Dim File() As Byte = System.IO.File.ReadAllBytes(filePath)
 Dim Md5 As New MD5CryptoServiceProvider()
 Dim byteHash() As Byte = Md5.ComputeHash(File)
 Return Convert.ToBase64String(byteHash)
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
 If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then
	 ListFiles(FolderBrowserDialog1.SelectedPath)
 End If
End Sub
Private Sub ListFiles(ByVal folderPath As String)
 ListBox1.Items.Clear()
 Dim numArq As Integer = 0
 Dim fileNames As String() = System.IO.Directory.GetFiles(folderPath, "*", IO.SearchOption.AllDirectories)
 Dim filehash As New System.IO.StreamWriter(System.IO.Directory.GetCurrentDirectory & "\filehash.txt")
 For Each fileName As String In fileNames
	 ListBox1.Items.Add(fileName)
	 numArq = (numArq + 1)
 Next
 filehash.WriteLine(numArq)
 For Each fileName As String In fileNames
	 filehash.WriteLine(fileName)
	 filehash.WriteLine(getFileMd5(fileName))
 Next
 filehash.Close()
 MsgBox("Arquivo criado com sucesso", MsgBoxStyle.Information, "Aviso")
End Sub
End Class

Se alguém me pude-se ajudar eu agradecia muito é que sou ainda iniciante em programação e tenho tido varias dificuldades e gostava muito de terminar este programa.

Editado por ribeiro55

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

O que tu pretendes tem de ser conseguido "manualmente". Não há forma de se adivinhar os níveis que tu queres mostrar e nem vão garantidamente existir sempre níveis suficientes para ser um corte rígido.

Terás que jogar com os "\", por exemplo:

Private Function Apanhar2Niveis(Caminho As String) As String
	Dim tmp() As String = Caminho.Split("\")
	If tmp.Length > 3 Then
		Dim ret As String = "..."
		For i As Integer = tmp.Length - 3 To tmp.Length - 1
			ret &= "\" & tmp(i)
		Next
		Return ret
	End If

	Return Caminho
End Function

Editado por ribeiro55

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
goldspy98

Obrigado ribeiro55 desculpe o tempo que demorei a responder mas é que demorei algum tempo para conseguir perceber o código que deixou :) mas funcionou lindamente consegui fazer o que queria.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
goldspy98

Olá de novo, para não estar a criar um novo tópico vou usar este. (Se não houver problema) :)

Eu já consegui fazer o programa obter os files todos com o endereço como cria mas agora eu cria alterar as \ dos endereços para estas / alguém tem alguma sugestão?

Editado por goldspy98

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55
Caminho = Caminho.Replace("\","/")

??


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
goldspy98

Muito obrigado ribeiro55 é mais simples do que pensava :) é que eu tinha procurado na Internet em vários sítios e tudo o que encontrei não tinha percebido é que sou novo em VB.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.