Caro Leonizo,
Para criar uma pasta eu utilizo o DIRMAKE da CT.LIB, a sintaxe é só passar o parâmetro do nome da pasta que deseja criar, e o nome, bem esse você ja tem (que pelo que ví parece ser a data do dia em modo DTOS() ). Mas de todas formas, eu acho que não seria conveniente estar abrindo pastas, pois além de inchar o seu diretório de trabalho possivelmente chegará um momento que não mais funcionará (pois acredito que há uma certa limitação de criação de pastas no mesmo diretório). Então eu pergunto:
Terias mesmo que criar uma pasta para cada dia ?. Entendo que nessas pastas irá gravar um arquivo de LOG para depois ser adicionado ao um DBF. Se a questão seria ordenar essa importação (de acordo data), eu sugeriria que esses arquivos TXT de LOG fossem gravados numa pasta (digamos pasta LOG, por exemplo) apenas com a nomenclatura desses arquivos da seguinte forma:
"LG"+RIGHT(DTOS(DATE()),6)+".001", "LG"+RIGHT(DTOS(DATE()),6)+".002", "LG"+RIGHT(DTOS(DATE()),6)+".003"...
E quando fosse para que o sistema venha a importar os arquivos TXT de LOG, seja feita de forma ordenada e a medida que é importado cada arquivo fosse deletado, para não sofrer inchaço da sua pasta de trabalho e não haver redundâncias. Na rotina que começa a fazer a importação desses arquivos, você precisará ordenar os nomes de arquivos (por data e sequência), então você poderia fazer da seguinte forma:
Código: Selecionar todos
VDIR:=DIRNAME() // Pega o nome da sua pasta atual
VTEMP:=DIRECTORY(VDIR+"\LOGS\LG??????.???")
VLOGS:={}
FOR I=1 TO LEN(VTEMP)
IF !(SUBSTR(VTEMP[I,1],1,8)="LG010100") // p/desprezar arqs. c/data indesejada
AADD(VLOGS,VTEMP[I,1])
ENDIF
NEXT
RELEASE VTEMP
VLOGS:=ASORT(VLOGS,,,{ |x,y| SUBSTR(x,3,6)+SUBSTR(x,10,3) > SUBSTR(y,3,6)+SUBSTR(y,10,3) }) /* Desta forma você ordenaria a sequência de importação pelo nome de cada arquivo TXT de LOG */
Despois você pegaria cada nome, diagamos assim:
Código: Selecionar todos
USE LOG.DBF
FOR I=1 LEN(VLOGS)
APPEND FROM VDIR+"\LOGS\"+VLOGS[I] SDF
.../...
NEXT
Para você criar a sequência de extensão de nome de arquivo, veja como eu faria:
Código: Selecionar todos
VNOM:=DIRNAME()+"\LOGS\"+"LG"+RIGHT(DTOS(DATE()),6)
VARQLOG:=DIRNAME()+"\LOGS\"+"LG"+RIGHT(DTOS(DATE()),6)+"."+STRZERO(VQFILE(VNOM),3,0)
FUNCTION VQFILE(VNOM)
FOR KI=1 TO 999
IF !FILE(VNOM+"."+STRZERO(KI,3,0))
VRET=KI
EXIT
ENDIF
IF KI=999
ALERT("Está na hora de importar arquivos de LOG.;Capacidade esgotada !.")
VRET=0
ENDIF
NEXT
RETURN VRET
Esta é uma forma simples de pegar a sequência que formaria a extensão do dia em questão.
Espero ter te ajudado, Leonizo e boa sorte !