goldspy98 Posted April 14, 2013 at 04:24 AM Report #503131 Posted April 14, 2013 at 04:24 AM (edited) 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. Edited April 14, 2013 at 10:30 AM by ribeiro55
ribeiro55 Posted April 14, 2013 at 11:12 AM Report #503142 Posted April 14, 2013 at 11:12 AM (edited) 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 Edited April 14, 2013 at 11:14 AM by 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"
goldspy98 Posted April 14, 2013 at 03:46 PM Author Report #503159 Posted April 14, 2013 at 03:46 PM 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.
goldspy98 Posted April 14, 2013 at 08:30 PM Author Report #503174 Posted April 14, 2013 at 08:30 PM (edited) 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? Edited April 14, 2013 at 08:31 PM by goldspy98
ribeiro55 Posted April 14, 2013 at 08:39 PM Report #503177 Posted April 14, 2013 at 08:39 PM 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"
goldspy98 Posted April 14, 2013 at 08:43 PM Author Report #503181 Posted April 14, 2013 at 08:43 PM 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.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now