apagar arquivo Pasta abaixo

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

Moderador: Moderadores

Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

apagar arquivo Pasta abaixo

Mensagem por Alexandre Silva »

olá//
Uma coisa basica, esta me fazendo perder tempo..
tenho um aplicativo que roda numa pasta Le e processa um TXT que fica numa pasta abaixo, ao final fecho o arquivo e dou comando erase, mas na consigo apaga-lo
Exemplo
C:\sistema pasta onde roda o aplicativo
C:\sistema\placas ( tem os txt)

1-Nao tem atributo de só leitura nos txt
2-Nao tem nome longo nas pastas
3-tentei com erase e ferase.
4-Cheguei a colocar o caminho completo com drive e tudo, em vez de ".\placas\arq.txt"
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

apagar arquivo Pasta abaixo

Mensagem por Pablo César »

Sem o código não dá pra saber... mas com certeza você deveria dar o caminho completo, principalmente se o arquivo não estiver na pasta corrente...
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 do usuário
Duda 'Sgluber'
Usuário Nível 3
Usuário Nível 3
Mensagens: 148
Registrado em: 11 Mar 2013 21:57
Localização: Interior de São Paulo

apagar arquivo Pasta abaixo

Mensagem por Duda 'Sgluber' »

Alexandre,

eu faria um teste a mais: usaria o RUN pra rodar diretamente o DEL do DOS.

Ainda, usaria o próprio RUN pra mudar de pasta antes de comandar a exclusão do arquivo.
Comecei pra valer nos tempos do MSX e nunca mais parei... grande caminhada! :-)
sambomb
Usuário Nível 3
Usuário Nível 3
Mensagens: 250
Registrado em: 24 Out 2008 17:02
Localização: Itaocara - RJ - Brasil

apagar arquivo Pasta abaixo

Mensagem por sambomb »

Roda no DOS
del "..\Arquivo.extensao"
Imagem

Rca Sistemas - Itaocara - RJ
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

apagar arquivo Pasta abaixo

Mensagem por alxsts »

Olá!

Isso é DOS puro...

Se você tem uma pasta "C:\Sistema" e dentro dela outra chamada "Placas", estando posicionado em "C:\Sistema", para referenciar um arquivo na subpasta desta é só escrever Placas/Arquivo.Txt.

Código: Selecionar todos

Function Main()

   LOCAL nRet

   IF ( nRet := FERASE("placas/Arquivo.Txt") ) == -1
      ? "File erase error:", FERROR()
      BREAK
   ELSE
      ? "File deleted..."
   ENDIF

Return nRet
Edit: desculpem, o correto é usar a barra invertida. placas\Arquivo.Txt
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

apagar arquivo Pasta abaixo

Mensagem por rochinha »

Amiguinho,

Use minhas soluções:

Código: Selecionar todos

FUNCTION F_ERASE( ARQUIVOS, CAMINHO )
   DEFAULT CAMINHO := "."
   CONTADOR := ADIR( ARQUIVOS )
   IF CONTADOR != 0
      DECLARE TXT_NOMES[ CONTADOR ]
      ADIR( ARQUIVOS, TXT_NOMES )
      FOR CONTADOR := 1 TO LEN( TXT_NOMES )
          FERASE( CAMINHO + "\" + TXT_NOMES[CONTADOR] )
      NEXT
   ENDIF
   RETURN .F.
Exemplo: F_Erase( "*.TXT", "\pasta" )

Código: Selecionar todos

FUNCTION F_COPY( ARQUIVOS, DESTINO )
   CONTADOR  := ADIR( ARQUIVOS )
   IF CONTADOR != 0
      DECLARE TXT_NOMES[ CONTADOR ]
      ADIR( ARQUIVOS, TXT_NOMES )
      FOR CONTADOR := 1 TO LEN( TXT_NOMES )
          __COPYFILE( TXT_NOMES[CONTADOR], DESTINO )
      NEXT
   ENDIF
   RETURN .F.
Exemplo: F_Copy( "\pasta\*.TXT", "C:\temp" )
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
Vander
Usuário Nível 3
Usuário Nível 3
Mensagens: 214
Registrado em: 23 Jul 2004 01:43
Localização: João Monlevade - MG

apagar arquivo Pasta abaixo

Mensagem por Vander »

Tente assim:
AEVAL(DIRECTORY("C:\sistema\placas\*.TXT"),{|aFile| FErase("C:\sistema\placas\"+aFile[1])})

vander
HbMake v1.17
xHarbour build 0.99.70 Intl. (SimpLex)
Borland C++ 5.5.1
fivewin 6.12 (FREE)
Workshop 4.5
MEdit
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

apagar arquivo Pasta abaixo

Mensagem por Alexandre Silva »

Obrigado a todos, como vimos tem varias formas de apagar..
o que aconteceu foi o seguinte
na rotina de leiura uso a funcao abaixo:

Código: Selecionar todos


*-----------------------------
function fazappend(varq)
local cSetEOL:=SET(_SET_EOL),nHandle,cBuff,npos,crlf:=chr(13)+chr(10)
nHandle := FOpen(varq,0)
if nHandle # -1
   cBuff:=SPACE(6000)
   nPos:=FSEEK(nHandle,0,1)
   IF ( nRead:=FREAD(nHandle,@cBuff,6000) ) > 0
      IF ( nEol:=AT(CRLF,SUBSTR(cBuff,1,nRead)) ) == 0
         SET(_SET_EOL,CHR(10)) // considera apenas o chr(10)
      ENDI
   ELSE
      SET(_SET_EOL,chr(13)+CHR(10)) // dai poe
   ENDIF
endif
APPEND FROM &(VARQ) SDF
SET(_SET_EOL,cSetEOL)  // volta ao padrao
FCLOSE(nHandle)  // <=
retu
Onde o arquivo é aberto com Fopen() eu nao estava fechando, com fclose()
isso passava no HB 2.1, como nao estava fechado nao conseguia apagar,
Com os testes, usando o DEL, vi a mensagem arquivo esta sendo usado..
Agora, colocando o FCLOSE(), apago com simples erase , sem precisar o caminho completo inclusive..
VALEU !
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Responder