apagar arquivo Pasta abaixo
Moderador: Moderadores
- Alexandre Silva
- Usuário Nível 3

- Mensagens: 376
- Registrado em: 26 Mar 2007 00:16
- Localização: Itapema - SC
apagar arquivo Pasta abaixo
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"
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
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
apagar arquivo Pasta abaixo
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.
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.
- Duda 'Sgluber'
- 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
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.
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! 
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
apagar arquivo Pasta abaixo
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. Edit: desculpem, o correto é usar a barra invertida. placas\Arquivo.Txt
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[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
apagar arquivo Pasta abaixo
Amiguinho,
Use minhas soluções:
Exemplo: F_Erase( "*.TXT", "\pasta" )
Exemplo: F_Copy( "\pasta\*.TXT", "C:\temp" )
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.
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.
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- Vander
- Usuário Nível 3

- Mensagens: 214
- Registrado em: 23 Jul 2004 01:43
- Localização: João Monlevade - MG
apagar arquivo Pasta abaixo
Tente assim:
AEVAL(DIRECTORY("C:\sistema\placas\*.TXT"),{|aFile| FErase("C:\sistema\placas\"+aFile[1])})
vander
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
xHarbour build 0.99.70 Intl. (SimpLex)
Borland C++ 5.5.1
fivewin 6.12 (FREE)
Workshop 4.5
MEdit
- Alexandre Silva
- Usuário Nível 3

- Mensagens: 376
- Registrado em: 26 Mar 2007 00:16
- Localização: Itapema - SC
apagar arquivo Pasta abaixo
Obrigado a todos, como vimos tem varias formas de apagar..
o que aconteceu foi o seguinte
na rotina de leiura uso a funcao abaixo:
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 !
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
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
