Jump to content
Jorgeaf

Abrir pasta pela url

Recommended Posts

Jorgeaf

Hola, estou com um pequeno problema que espero que alguem me ajude.

queria abrir uma pasta atraves de uma url com codigo visual basic.

explico: tenho u ficheiro em determinada pasta, la url desse ficheiro tenho-a num label (neste caso label3.text) isto porque li por ai que em um textbox nao funciona.

e queria que quando clica-se um um botao se abri-se essa pasta, mas sem abrir o ficheiro porque por exemplo

este codigo (System.Diagnostics.Process.Start(Label3.Text) abre o ficheiro

este otro - Shell("explorer n/, *label3.text", AppWinStyle.NormalFocus) - abre uma pasta que e a de documentos mas na e a pasta onde esta o ficheiro.

bom espero ajuda obrigado

 

Jorge

Share this post


Link to post
Share on other sites
Jorgeaf
26 minutos atrás, Gnrtuga disse:

Ora boas, fiquei com dúvidas sobre o que queres, mas acho que é isto:


 Process.Start("Explorer.exe", "C:\NomeDaPasta")

Boa sorte

em primeiro lugar quero agradecer pela ajuda, no entanto ainda nao ficou resolvido o problema, eu explico:

tenho um formulario com um label (neste caso label3) e tenho um botao onde me recolhe a url dos ficheiros como por exemplo esta (C:\Users\Jorge\Downloads\revista programar Nº1)

tenho outro botao que me serviria para abrir, nao o ficheiro mas sim a pasta que o contem.

se em outra url tenho por exem (C:\Users\Jorge\Documentos\revista programar Nº 40) entao teria que me abrir a pasta Documentos, na anterior teria que abrir a pasta download.

esse codigo me abre sempre a pasta (equipo\documentos)

por certo o codigo que pus foi a seguinte : Process.Start("Explorer.exe", "C:\label3.text")

ja que label3.text vai variando conforme o ficheiro

espero ter explicado melhor

  obrigado

Edited by Jorgeaf

Share this post


Link to post
Share on other sites
Gnrtuga

Não estou a ver o que possa ser, experimenta:

usar o comando sem o caminho da pasta, a ver se abre a pasta os meus documentos.

colocar um caminho manualmente, por exemplo documentos/fotografias/praia

usar o mesmo processo para abrir um ficheiro especifico. 

Só te posso ajudar na melhor das hipóteses hoje à noite. 

Boa sorte.


Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!)

Nunca mais é verão outra vez.. :)

Share this post


Link to post
Share on other sites
Jorgeaf
20 minutos atrás, Gnrtuga disse:

Não estou a ver o que possa ser, experimenta:

usar o comando sem o caminho da pasta, a ver se abre a pasta os meus documentos.

colocar um caminho manualmente, por exemplo documentos/fotografias/praia

usar o mesmo processo para abrir um ficheiro especifico. 

Só te posso ajudar na melhor das hipóteses hoje à noite. 

Boa sorte.

em primeiro obrigado pela ajuda, tenho a dizer que nao tenho preça nenhuma no codigo, e quero este codigo pelo seguinte:

tenho uma base de dados onde tenho todos meus documentos e cada documento se encontra em sua pasta, ora se eu tenho na base de dados a url do documento (caminho)

entao o que eu queria e dar numa tecla e que me abri-se essa pasta,(Nao o documento porque para isso tenho otra tecla que esta funcionando bem, mas alguns documentos quero trocalos de pasta e para nao andar com o trabalho de procurar a pasta desta forma sera muito mais facil.

dito isto vamos, a experiancia estou a fazela na asta de dowloads assim que se ponho este codigo (Process.Start("C:\Users\Jorge\Downloads") efectivamente me abre a pasta

mas se ponho este outro (Process.Start("C:\Users\Jorge\Downloads\revista programar Nº 48") me abre a revista.

o que eu pretendo e abrir so essa pasta.

a url tenhoa num label com o nome label3.text assim que se ponho  (Process.Start("label3.text") p programa no pode encontrar o ficheiro especificado

se ponho este outro - Process.Start("Explorer.exe", "label3.text")  me abre em meus documentos, mas nao a pasta que seria downloads.

irei pesquizando tambem como se faz

obrigado

Share this post


Link to post
Share on other sites
Gnrtuga

Portanto, fiz uma pesquisa e aparentemente  existem várias opções:

Process.Start("CaminhoDaPasta")

Ou

Process.Start("explorer.exe", "/root,CaminhoDaPasta")

Ou 

SetCurrentDirectory("CaminhoDaPasta")
Process.Start("explorer.exe")

Nota que não experimentei, no entanto a primeira parece-me a mais simples, e a última acho que é provável de funcionar.

Sobre a segunda tenho as minhas dúvidas, mas também não custa experimentar.

Boa sorte.


Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!)

Nunca mais é verão outra vez.. :)

Share this post


Link to post
Share on other sites
Jorgeaf
17 minutos atrás, Gnrtuga disse:

Portanto, fiz uma pesquisa e aparentemente  existem várias opções:


Process.Start("CaminhoDaPasta")

Ou


Process.Start("explorer.exe", "/root,CaminhoDaPasta")

Ou 


SetCurrentDirectory("CaminhoDaPasta")
Process.Start("explorer.exe")

Nota que não experimentei, no entanto a primeira parece-me a mais simples, e a última acho que é provável de funcionar.

Sobre a segunda tenho as minhas dúvidas, mas também não custa experimentar.

Boa sorte.

Boa tarde, e obrigado pela ajuda, quero agradecer tambem o seu esforzo.

neste exemplo tenho um label , que suponho tambem que com uma caixa de texto funcionaria tambem, mas tenho um label com o nome (lbruta).

tenho dois botoes, o primeiro vai buscar a ruta do ficheiro e escreve a no label.

o codigo completo e o seguinte:

 Private Sub Btnbuscarruta_Click(sender As Object, e As EventArgs) Handles Btnbuscarruta.Click
        If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
            lbruta.Text = OpenFileDialog1.FileName
        End If
    End Sub

 

no segundo botao se escrevo esse codigo

 

  Dim ruta As String
        ruta = lbruta.Text
        If System.IO.File.Exists(ruta) Then

            Process.Start(lbruta.Text)
        Else
            MsgBox("No se encontro el archivo")
        End If

 

abreme o ficheiro e nao e isso o pretendido, apenas teria que abrir a pasta onde se encontra o ficheiro

com o segundo exemplo pus o seguinte codigo:

   Dim ruta As String
        ruta = lbruta.Text
        If System.IO.File.Exists(ruta) Then

            Process.Start("explorer.exe", "root,lbruta.text")
        Else
            MsgBox("No se encontro el archivo")
        End If

este nao abre o ficheiro e sim que abre o explorador, mas na pasta documentos, e eu queria que abri-se a pasta downloads que e onde tenho o ficheiro

com o seguinte codigo abre o explorador, esta bem mas nao e o bjectivo

 

Dim ruta As String
        ruta = lbruta.Text
        If System.IO.File.Exists(ruta) Then

            Process.Start("explorer.exe")
        Else
            MsgBox("No se encontro el archivo")
        End If

 

e ppor ultimo setcurrentydirectory (da error)

acho que a soluçao e o process.start mas sem abrir o ficheiro o que acho que tera de levar algumas variaveis, para que abrir somente o directorio e nao o ficheiro.

 

vou tentando

 

Share this post


Link to post
Share on other sites
Gnrtuga

Bom, isto não está fácil :)

O erro deve de ser por falta do 

Imports System
Imports System.IO

no topo do código, junto dos outros imports.

Caso não dê experimenta:

 Dim dir As String = "C:\test"
      Try
         'Set the current directory.
         Directory.SetCurrentDirectory(dir)
      Catch e As DirectoryNotFoundException
         'esta linha está comentada'Console.WriteLine("The specified directory does not exist. {0}", e)
      End Try

Tirei este exemplo daqui: https://msdn.microsoft.com/en-us/library/system.io.directory.setcurrentdirectory(v=vs.110).aspx

Vamos ver se é desta!

Boa sorte.


Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!)

Nunca mais é verão outra vez.. :)

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.