FS_CREATE_DIR
Cria um diretório no sistema de arquivos do SDCARD, criando também os diretórios intermediários que não existirem no caminho informado. É um bloco de função (mantém estado entre scans; requer instância).
Biblioteca: HI_STD · Namespace: HILS · Tipo: bloco de função
Bloco de função
FS_CREATE_DIR
+--------------+
BOOL ----|START DONE|---- BOOL
| |
| RESULT|---- INT
| |
STRING ----|NAME -------- |----
+--------------+
A execução é iniciada colocando START em TRUE. Se START retornar a FALSE antes
do término da operação, o bloco é resetado. O parâmetro NAME deve conter o caminho
completo do diretório a ser criado, sempre iniciando pelo caractere / (raiz), com no
máximo 64 caracteres.
Ao passar em NAME um caminho com vários níveis (ex.: /PASTA_1/PASTA_2), os
diretórios intermediários que ainda não existirem são criados automaticamente.
Nota
DONE fica ativo por apenas um ciclo de scan ao término da execução; nesse
instante o resultado deve ser consultado em RESULT.
Parâmetros
Nome |
Direção |
Tipo |
Padrão |
Faixa / Unidade |
Descrição |
|---|---|---|---|---|---|
START |
IN |
BOOL |
FALSE |
— |
Ativação da função. Em TRUE inicia a execução; se voltar a FALSE antes do fim, reseta o bloco. |
NAME |
IN_OUT |
STRING |
— |
até 64 caracteres |
Caminho completo do diretório a ser criado, iniciando por |
DONE |
OUT |
BOOL |
FALSE |
— |
Pulso (1 scan) indicando o fim da execução da função. |
RESULT |
OUT |
INT |
0 |
RET_CODE |
Código de retorno da execução (ver Códigos de retorno). |
Códigos de retorno
RESULT é do tipo RET_CODE. Use os identificadores com o namespace HILS
(ex.: HILS.SUCCESS). Códigos mais comuns deste bloco:
Código |
Identificador |
Significado |
|---|---|---|
0 |
SUCCESS |
Diretório criado com sucesso. |
5 |
GL_INV_PAR |
Parâmetro(s) inválido(s). |
7 |
GL_UNA_CMD |
Comando não disponível ou não implementado. |
8 |
GL_INV_STT |
Estado corrente inválido. |
11 |
GL_CMD_CAN |
Comando cancelado. |
16 |
GL_CMD_PEND |
Tratamento do comando pendente. |
24 |
RE_NOT_AVA |
Sem suporte para o sistema de arquivos ou SDCARD não detectado. |
25 |
RE_INV_LEN |
Tamanho especificado no parâmetro |
33 |
RE_NOT_INIT |
Recurso não inicializado. |
167 |
FS_CORRUPT |
Sistema de arquivos pode estar corrompido. |
173 |
FS_INVALIDNAME |
Texto especificado no parâmetro |
175 |
FS_DUPLICATED |
O arquivo ou diretório já existe. |
Lista completa dos códigos de retorno: RET_CODE - Códigos de retorno do firmware G5.
Pré-condições
SDCARD presente e sistema de arquivos disponível/inicializado.
NAMEdeve iniciar por/e ter no máximo 64 caracteres.
Observações
Diretórios intermediários inexistentes são criados automaticamente ao longo do caminho.
Consulte
RESULTsomente após o pulso deDONE.
Ver também
FS_CREATE_FILE, FS_DELETE_FILE_DIR, FS_EXIST_FILE_DIR, FS_CHANGE_DIR, FS_LIST_DIR
Exemplo
Clique aqui para baixar a tabela de variáveis
Código ST
VAR
DIR_DADOS : STRING := '/DADOS'; (* Nome do diretório a ser criado na raiz *)
MY_START : BOOL := FALSE; (* Ativação da função *)
STR_X : STRING; (* Nome do diretório a ser criado, até 64 caracteres *)
CREATE_DIR : HILS.FS_CREATE_DIR; (* Instancia do bloco "FS_CREATE_DIR" *)
END_VAR
//============================================================================
// Exemplo 1 : Cria diretorio no raiz do sistema de arquivo
//============================================================================
STR_X := DIR_DADOS; // Nome do diretorio '/DADOS' no raiz do sistema de arquivo
MY_START := TRUE; // Ativação do bloco da função
(* ... *)
//============================================================================
// Exemplo 2 : Cria diretorio dentro de outro diretório
//============================================================================
// Cria o diretório "ESTILO_A" dentro do diretório "/Receitas".
STR_X := '/Receitas/ESTILO_A'; // Caminho completo com o nome dos diretórios a serem criados
MY_START := TRUE; // Ativação do bloco da função
(* ... *)
//============================================================================
// Exemplo 3 : Cria diretorio dentro de outro diretório
//============================================================================
// Cria o diretório "P4" dentro do diretório "/P1/P2/P3".
STR_X := '/P1/P2/P3/P4'; // Caminho completo com o nome dos diretórios a serem criados
MY_START := TRUE; // Ativação do bloco da função
(* ... *)
//============================================================================
// Trata função FS_CREATE_DIR
//============================================================================
CREATE_DIR(
START := MY_START, // [BOOL] Ativação da função
NAME := STR_X // [STRING] Nome do diretório a ser criado
);
// Aguarda término da execução da função do sistema de arquivos
IF (CREATE_DIR.DONE) THEN
MY_START := FALSE; // Reseta ativação da função
// Testa código de retorno da execução da função
IF (CREATE_DIR.RESULT = HILS.SUCCESS) THEN
// ... Função executada com sucesso
ELSE
// ... Erro na execução da função
END_IF;
END_IF;
(* ... *)