Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ZecaLoteiro

C# - Verificando se o arquivo existe + criando atalho no desktop

Recommended Posts

Boa tarde.

Estou com um problema, preciso corrigir um DVD que foi lançado com uma referencia incorreta à um arquivo.

Pensei em criar uma pequena aplicação e disponiiliza-la na web.

+ ou - no seguinte formato:

Imagem Postada

 

Alguém poderia me ajudar ?

Quando a pessoa clica no Procurar, ele preenche o textbox com o caminho da pasta que ele selecionou.

Até aqui tudo bem.

 

Preciso verificar se na pasta que ele selecionou, existe tal arquivo.

Ex: Se o arquivo "install_abc.exe" existe na pasta que ele selecionou.

 

Se existir, tenho a opção de o usuário selecionar para criar um atalho na área de trabalho do usuário.

Como posso criar esse atalho ? Alguém pode me ajudar ?

 

Desde já muito obrigado ! :)

 

Melhor que verificar se existe o arquivo específico, seria verificar o nome da MÍDIA. e o arquivo.

 

Alguém ae manja ??? Plz ???

 

Thanx ! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Melhor que verificar se existe o arquivo específico, seria verificar o nome da MÍDIA. e o arquivo.

 

Alguém ae manja ??? Plz ???

 

Thanx ! :)

 

 

Opa, tranquilo?

 

 

Cara, é bem simples isto, tu vai precisar dar uma estudada na classe File do System.IO.

Algo tipo isto:

string arquivo = "c:\exemplo.txt";
if(File.Exists(arquivo))
{
  Console.WriteLine("Arquivo existe!");
}
else
{
  Console.WriteLine("Arquivo não existe!");
}

Olhe, na microsoft tem todo conteudo disponivel:

http://msdn.microsoft.com/pt-br/library/system.io.file.aspx

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, muito obrigado...

Problema parcialmente resolvido.

 

Agora como eu posso criar o atalho na área de trabalho do usuário ???

 

Thanx...

 

 

Melhor que verificar se existe o arquivo específico, seria verificar o nome da MÍDIA. e o arquivo.

 

Alguém ae manja ??? Plz ???

 

Thanx ! :)

 

 

Opa, tranquilo?

 

 

Cara, é bem simples isto, tu vai precisar dar uma estudada na classe File do System.IO.

Algo tipo isto:

string arquivo = "c:\exemplo.txt";
if(File.Exists(arquivo))
{
  Console.WriteLine("Arquivo existe!");
}
else
{
  Console.WriteLine("Arquivo não existe!");
}

Olhe, na microsoft tem todo conteudo disponivel:

http://msdn.microsoft.com/pt-br/library/system.io.file.aspx

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Criar atalho eu tambem não sei, mas nao me gastou nem 5 minutos para descobrir.

 

Coloquei no google assim "make shortcut C Sharp" e cliquei em estou com sorte. Primeiro site que veio : Clique aqui

 

As vezes é bom perder(ganhar) tempo procurando antes de perguntar ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, fmz... valeew pela força....

Consegui adaptar aqui para o que eu precisava.

Na minha máquina está rodando certinho, mas, eu precisava mandar pro cliente só um arquivo ".exe" , e quando eu faço isso, ele roda o programa, mas na hora de criar o atalho dá o seguinte erro:

 

NÃO FOI POSSÍVEL CARREGAR ARQUIVO OU ASSEMBLY 'INTEROP.IWSHRUNTIMELIBRARY'

Consulte o final desta mensagem para obter detalhes sobre como chamar a 
depuração just-in-time (JIT) em vez desta caixa de diálogo.

************** Texto de Exceção **************
System.IO.FileNotFoundException: Não foi possível carregar arquivo ou assembly 'Interop.IWshRuntimeLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' ou uma de suas dependências. O sistema não pode encontrar o arquivo especificado.
Nome do arquivo: 'Interop.IWshRuntimeLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
   em Correção.Form1.criaAtalho(String linkName)
   em System.Windows.Forms.Control.OnClick(EventArgs e)
   em System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   em System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   em System.Windows.Forms.Control.WndProc(Message& m)
   em System.Windows.Forms.ButtonBase.WndProc(Message& m)
   em System.Windows.Forms.Button.WndProc(Message& m)
   em System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   em System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

AVI: o log de ligações de assembly está desativado.
Para ativar o log de  falhas de assembly, defina o valor do Registro [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) como 1.
Observação: há alguma penalidade para o desempenho associada ao log de falha de ligação de assembly.
Para desativar esse recurso, remova o valor do Registro [HKLM\Software\Microsoft\Fusion!EnableLog].



************** Conjuntos de Módulos (Assemblies) Carregados **************
mscorlib
    Versão do Conjunto de Módulos (Assembly): 2.0.0.0
    Versão do Win32: 2.0.50727.4927 (NetFXspW7.050727-4900)
    Base de Código: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
----------------------------------------
Correção
    Versão do Conjunto de Módulos (Assembly): 1.0.0.0
    Versão do Win32: 1.0.0.0
    Base de Código: file:///C:/Users/rsantos/Desktop/Corre%E7%E3o.exe
----------------------------------------
System.Windows.Forms
    Versão do Conjunto de Módulos (Assembly): 2.0.0.0
    Versão do Win32: 2.0.50727.4918 (NetFXspW7.050727-4900)
    Base de Código: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Versão do Conjunto de Módulos (Assembly): 2.0.0.0
    Versão do Win32: 2.0.50727.4918 (NetFXspW7.050727-4900)
    Base de Código: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Versão do Conjunto de Módulos (Assembly): 2.0.0.0
    Versão do Win32: 2.0.50727.4918 (NetFXspW7.050727-4900)
    Base de Código: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Windows.Forms.resources
    Versão do Conjunto de Módulos (Assembly): 2.0.0.0
    Versão do Win32: 2.0.50727.4918 (NetFXspW7.050727-4900)
    Base de Código: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_pt-BR_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------
mscorlib.resources
    Versão do Conjunto de Módulos (Assembly): 2.0.0.0
    Versão do Win32: 2.0.50727.4927 (NetFXspW7.050727-4900)
    Base de Código: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
----------------------------------------

************** Depuração JIT **************
Para habilitar a depuração just-in-time (JIT), o arquivo .config deste
aplicativo ou computador (machine.config) deve ter o valor
jitDebugging definido na seção system.windows.forms.
O aplicativo também deve ser compilado com a depuração
habilitada.

Por exemplo:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

Quando a depuração JIT está habilitada, qualquer exceção não tratada
será enviada ao depurador JIT registrado no computador,
em vez de ser tratada nesta caixa de diálogo.



Alguem sabe como incorporar isso no .exe para que ele funcione corretamente ?

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui agregar a dll usando o ILMERGE mas agora quando vou executar, dá a seguinte msg:

 

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IO.FileNotFoundException: O sistema não pode encontrar o arquivo especificado. (Exception from HRESULT: 0x80070002)
   at IWshRuntimeLibrary.IWshShortcut.set_TargetPath(String out_Path)
   at Correção.Form1.criaAtalho(String linkName)
   at Correção.Form1.bAbrir_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3603 (GDR.050727-3600)
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
final
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Documents%20and%20Settings/rsantos/Desktop/jplibera.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pq não consigo editar minha própria resposta ?

Na maquina que tenho o Visual Studio instalado, ele funciona 100%,

porem testei em outras máquinas e dá esse erro :(

0x80070002

 

Alguém sabe o motivo ?

Thanx.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pq não consigo editar minha própria resposta ?

Na maquina que tenho o Visual Studio instalado, ele funciona 100%,

porem testei em outras máquinas e dá esse erro :(

0x80070002

 

Alguém sabe o motivo ?

Thanx.

 

Possui o Dot.Net instalado nessas maquinas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, esse é o grande X da questão...

Acho que C# .net nem é a melhor opção então por causa disso, requer que todas as máquinas possuam o .net instalado...

Se bem que ele abre o programa, só não gera o atalho....

 

Você podem me ajudar a achar uma solução para esse problema ????

Sei lá ? talvéz outra linguagem ??

 

Help plzz ?

 

 

Pq não consigo editar minha própria resposta ?

Na maquina que tenho o Visual Studio instalado, ele funciona 100%,

porem testei em outras máquinas e dá esse erro :(

0x80070002

 

Alguém sabe o motivo ?

Thanx.

 

Possui o Dot.Net instalado nessas maquinas?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, esse é o grande X da questão...

Acho que C# .net nem é a melhor opção então por causa disso, requer que todas as máquinas possuam o .net instalado...

Se bem que ele abre o programa, só não gera o atalho....

 

Você podem me ajudar a achar uma solução para esse problema ????

Sei lá ? talvéz outra linguagem ??

 

Help plzz ?

 

 

 

Pq não consigo editar minha própria resposta ?

Na maquina que tenho o Visual Studio instalado, ele funciona 100%,

porem testei em outras máquinas e dá esse erro :(

0x80070002

 

Alguém sabe o motivo ?

Thanx.

 

Possui o Dot.Net instalado nessas maquinas?

 

Sim faltou uma analise em cima da linguagem que iria usar antes de começar a desenvolver seu programa.

Não somente C Sharp, mas qualquer linguagem que usar a plataforma Dot.Net irá precisar do framework instalado nos computadores client que for usar.

 

Eu acho que a linguagem que é compilada e é bem simples para este software que você quer é a Object Pascal, de uma olhada sobre 'Delphi'.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.