Clipper On Line • Ver Tópico - Como achar um arquivo no computador

Como achar um arquivo no computador

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Como achar um arquivo no computador

Mensagempor Pablo César » 05 Jan 2015 15:33

Eolo escreveu:"O usuário baixa um arquivo do e-mail, não sabe onde salvou e depois o SISTEMA da empresa tem que procurar o arquivo?". Hã? Como assim?

Algo como "O filho do usuário quer saber onde o Governor of Poler 2 salva os arquivos, aí o cliente acessa o sistema da empresa e acha os arquivos?". Hã?

A pergunta inicial do Helio até poderia ter algum sentido, tanto que respondi. Mas depois deste último post dele, sei não. Imagino o financeiro, debruçado sobre o Contas a Pagar, tendo que parar porque o presidente da empresa quer saber onde o Gamão do Windows 7 salvou os scores dele...

Pra mim não faz sentido.
KKKKKK ahhh só você Eolo, pra me fazer rir agora... kkkkkkk

Hélio, eu não sei se você procura uma solução para o modo console ou GUI. Se for para aplicativos Windows (o que eu posso falar), dependendo a biblioteca gráfica que você utilize. A maioria tem uma função que utiliza-se da API (recursos do Windows) e que certamente você poderá contar com os arquivos "Recentes". Isto é o que mais prático se me ocorre dizer. A outra é você guardar o destino do arquivo em arquivo INI por exemplo. Mas tudo vai depender como é acionado esse download.

Porque ficar procurando o HD inteiro, é BESTEIRA. Desculpe dizer assim curto e grosso. Não se pode sub-utilizar um sistema pra essa finalidade. Já existe o "Localizador" do próprio Windows. Geralmente quando gravamos algo e tentar voltar a gravar, o Windows guarda o ultimo caminho/path.

Desculpe Hélio estarmos rindo aqui, mas não é de você e sim da situação que foi criada tudo por causa da falta de mais informaçõese um e outro ficamos imaginando inúmeras situações...

Mas que nós todos estamos ficando véio... ahhh estamos sim ! kkkkk
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Como achar um arquivo no computador

Mensagempor Eolo » 05 Jan 2015 16:23

Nah, tem que ter humor, senão não vale a pena, Pablo. :-)

Enfim, não é ficar velho. Minha (digamos) preocupação é "se encantar mais com a rede do que com o mar", como diz a letra daquela música. Discutir os bits da função sem se ligar pra que ela vai servir.
Avatar de usuário

Eolo
Colaborador

Colaborador
 
Mensagens: 1134
Data de registro: 08 Dez 2005 17:24
Cidade/Estado: São Paulo - SP
Curtiu: 0 vez
Mens.Curtidas: 41 vezes

Como achar um arquivo no computador

Mensagempor alxsts » 05 Jan 2015 16:48

Olá!

LOCAL cPath := Space(255)

@10,10 SAY "Informe o local onde você salvou a porcaria do arquivo e o nome dele:" ;
       GET cFile ;
      PICT "@S40"

READ
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Como achar um arquivo no computador

Mensagempor helio » 05 Jan 2015 18:57

Boa noite,

Caro Eolo este assunto foi porque preciso saber onde o cliente baixou o arquivo liberacao do meu sistema porque tem muitos cliente que nao sabe salvar dentro a pasta correta por incrivel que pareca e so isso.
Helio Beltrao Jr.
msn: helio@htisistemas.com
Avatar de usuário

helio
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 175
Data de registro: 04 Ago 2004 10:36
Cidade/Estado: São Bento do Una-PE
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Como achar um arquivo no computador

Mensagempor helio » 05 Jan 2015 19:10

oa noite,

Acho que deveria ter mais respeito com os amigos e se quiser colaborar bem e nao fazer graca porque o que postei nao e brincadeira é o que estou precisando e o Jairo Maia me ajudou com um simples exemplo nao tar com piada e se informar mais se quiser ajudar.
Helio Beltrao Jr.
msn: helio@htisistemas.com
Avatar de usuário

helio
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 175
Data de registro: 04 Ago 2004 10:36
Cidade/Estado: São Bento do Una-PE
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Como achar um arquivo no computador

Mensagempor JoséQuintas » 05 Jan 2015 19:41

Não faça isso.
Por acaso pensou na hipótese de existirem vários programas com mesmo nome?
Pra compensar que o cliente não sabe aonde salva, vai pegar um programa que não sabe se é o correto.

Se é assim, mais seguro então colocar em seu programa pra ele mesmo fazer o download.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Como achar um arquivo no computador

Mensagempor helio » 05 Jan 2015 20:21

Boa noite, Jose

Ja tentei colocar o downloads dentro do sistema mais nao consegui uso XHARBOUR mais o arquivo que mando para o cliente e o cnpj do mesmo.
Helio Beltrao Jr.
msn: helio@htisistemas.com
Avatar de usuário

helio
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 175
Data de registro: 04 Ago 2004 10:36
Cidade/Estado: São Bento do Una-PE
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Como achar um arquivo no computador

Mensagempor Eolo » 06 Jan 2015 09:11

Hélio, vou dar uma sugestão, que é como eu faço há muito tempo.

Ao invés de mandar um arquivo para os seus clientes, mande uma CHAVE criptografada, que vai desbloquear o programa pelo prazo desejado. E essa chave pode ir por e-mail, por SMS, por telefone ou ainda pessoalmente. Mais simples.

1. Vencido o prazo vigente, o seu sistema abre uma janela avisando sobre o bloqueio e solicitando ao usuário que entre com a CHAVE de renovação.

2. Essa chave pode ser algo como "AKS89AB20", que corresponde a "001150131" (cliente 001, vencimento 31/01/15), criptografado. No meu caso, faço uma chave mais longa, com informações que não têm nada a ver, só pra complicar uma eventual tentativa de quebra.

3. O usuário digita "AKS89AB20", o seu sistema converte para "001150131", confirma que o cliente é o "001" e registra o novo vencimento, liberando tudo.

4. Esse novo vencimento (o "AKS89AB20", criptografado), vc guarda em um arquivo "escondido" dentro da pasta do Windows ou outra qualquer. No início do sistema, vc procura por esse arquivo (cuja localização vc conhece), checa se a vigência está ok e libera ou não o sistema para uso. E se esse arquivo não existir, vc interrompe o sistema e solta na tela um "Favor contatar o Hélio".

5. Isto é infalível? Não é. Mas um usuário comum vai apanhar bastante até conseguir quebrar. No meu caso, nenhum usuário nunca quebrou. O usuário pode até achar o arquivo, mas vai ler "AKS89AB20" e usar como?

6. Para encriptar, não precisa inventar muito. Crie uma função que troque 1 por X, 2 por @, 3 por J etc. Para desencriptar, é só trocar X por 1, @ por 2, J por 3 etc.

7. Para criar, ler e gravar o arquivo, é só usar as funções de baixo nível FOpen, FWrite, Fread, Fclose.

Veja se ajuda.
Avatar de usuário

Eolo
Colaborador

Colaborador
 
Mensagens: 1134
Data de registro: 08 Dez 2005 17:24
Cidade/Estado: São Paulo - SP
Curtiu: 0 vez
Mens.Curtidas: 41 vezes

Como achar um arquivo no computador

Mensagempor asimoes » 06 Jan 2015 10:07

Muitos programas comerciais trabalham com chave de ativação/renovação que são enviadas por email.
O programa só precisa guardar o arquivo chave (licença) de validação na pasta do sistema e validar a chave com algoritmo de validação.

Ex. a chave informada é AJK123I100 esta chave é a data de vigência e expiração de funcionamento e pode conter outras informações.

Se a chave informada for valida, o sistema grava um arquivo contendo a chave em uma pasta especifica e a usa até que expire.
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Como achar um arquivo no computador

Mensagempor Eolo » 06 Jan 2015 11:09

O programa só precisa guardar o arquivo chave (licença) de validação na pasta do sistema


Asimões, veja os posts anteriores do Helio: o problema é que o usuário recebe o arquivo por email e salva em qualquer lugar, depois não onde salvou e toca a procurar o danado.

Aliás, não entendi direito o que o seu post acrescentou ao assunto.

Também, o arquivo chave não PRECISA ficar na pasta do sistema. Pode ficar em qualquer lugar.
Avatar de usuário

Eolo
Colaborador

Colaborador
 
Mensagens: 1134
Data de registro: 08 Dez 2005 17:24
Cidade/Estado: São Paulo - SP
Curtiu: 0 vez
Mens.Curtidas: 41 vezes

Como achar um arquivo no computador

Mensagempor asimoes » 06 Jan 2015 13:25

Podem ignorar o meu post!
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Como achar um arquivo no computador

Mensagempor syslink » 05 Jul 2019 18:14

gente td bem

to tentano entender o porque nao funciona assim:

if .not. file ('C:\WINDOWS\SYSTEM\TESTE.INF') .and. .not. file ('D:\WINDOWS\SYSTEM\TESTE.INF') .and. .not. file ('C:\WINDOWS\SYSTEM32\TESTE.INF') .and. .not. file ('D:\WINDOWS\SYSTEM32\TESTE.INF') .and. .not. file ('C:\Windows\SysWOW64\TESTE.INF') .and. .not. file ('d:\Windows\SysWOW64\TESTE.INF')
    MsgStop('program invalido. será encerrado.)
    close all
    quit
else
    msginfo('programa liberado para uso!')
endif

posso colocar o arquivo teste.inf em qualquer uma das pastas que o sistema nao o encontra. mesmo se substituir o FILE por DIRECTORYRECURSE ou por DIRECTORY num funciona.

Agora se eu mudar para um montao de IF endendados uns aos outros ai funciona como abaixo:
   IF .NOT. FILE ('C:\WINDOWS\SYSTEM\TESTE.INF')
      IF .NOT. FILE ('D:\WINDOWS\SYSTEM\TESTE.INF')
         IF .NOT. FILE ('C:\WINDOWS\SYSTEM32\TESTE.INF')
            IF .NOT. FILE ('D:\WINDOWS\SYSTEM32\TESTE.INF')
               IF .NOT. FILE ('C:\WINDOWS\SYSWOW64\TESTE.INF')
                  IF .NOT. FILE ('D:\WINDOWS\SYSWOW64\TESTE.INF')
                     if .not. file ('C:\WINDOWS\SYSTEM\TESTE.INF')
                        if .not. file ('C:\WINDOWS\SYSTEM32\TESTE.INF')
                           if .not. file ('D:\WINDOWS\SYSTEM\TESTE.INF')
                              if .not. file ('D:\WINDOWS\SYSTEM32\TESTE.INF')
                                 if .not. file ('C:\WINDOWS\SYSWOW64\TESTE.INF')
                                    if .not. file ('D:\WINDOWS\SYSWOW64\TESTE.INF')
                                         MsgStop('program invalido. será encerrado.)
                                         close all
                                         quit
                                   else
                                         msginfo('programa liberado para uso!')
                                   endif
                               ENDIF
                            ENDIF
                         ENDIF
                      ENDIF
                   ENDIF
                ENDIF
             ENDIF
          ENDIF
       ENDIF
    ENDIF
ENDIF


alguem tem uma dica, se precisa de um SET FILE alguma coisa...
ps: nao testei hb_FNameSplit()

obrigado por ajuda
syslink
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 132
Data de registro: 20 Fev 2018 13:13
Cidade/Estado: joinvile/sc
Curtiu: 3 vezes
Mens.Curtidas: 3 vezes

Como achar um arquivo no computador

Mensagempor JoséQuintas » 05 Jul 2019 19:00

syslink escreveu:to tentano entender o porque nao funciona assim:


Continua sendo o mesmo motivo da outra vez que perguntou.
Pastas do Windows não são brinquedo, só o administrador consegue mexer.
Crie outra forma de proteger seu programa.

Rode o programa como administrador e vai ver que funciona.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Como achar um arquivo no computador

Mensagempor JoséQuintas » 06 Jul 2019 10:00

Corrigindo minha resposta:

Seus IFs do primeiro caso estão errados.
Do jeito que colocou, obrigaria a existir em todas as pastas de uma vez.

IF ! ( File( "" ) .OR. File( "" ) )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Como achar um arquivo no computador

Mensagempor JoséQuintas » 06 Jul 2019 11:36

Talvez mais legível:

PROCEDURE Main

   IF ! Liberado()
       MsgStop( "program invalido. será encerrado." )
       CLOSE ALL
       QUIT
   ENDIF
   MsgInfo( "programa liberado para uso!" )
   
   RETURN

STATIC FUNCTION Liberado()

   LOCAL lLiberado := .F.
   LOCAL aList := {
      "C:\WINDOWS\SYSTEM\TESTE.INF", ;
      "D:\WINDOWS\SYSTEM\TESTE.INF", ;
      "C:\WINDOWS\SYSTEM32\TESTE.INF", ;
      "D:\WINDOWS\SYSTEM32\TESTE.INF", ;
      "C:\Windows\SysWOW64\TESTE.INF", ;
      "D:\Windows\SysWOW64\TESTE.INF" }

   AEval( aList, { | e | lLiberado := lLiberado .OR. File( e ) } )
   
   RETURN lLiberado
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Anterior Próximo



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Bing [Bot] e 8 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro