Árvore de páginas

Cria um diretório.

Sintaxe

MakeDir( < cPath >, [ uParam2 ], [ lChangeCase ] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cPath

caractere

Indica o nome do diretório que será criado.

X

 

uParam2

numérico

Parâmetro de compatibilidade. Passar Nil.

 

 

lChangeCase

lógico

Se verdadeiro (.T.), nomes de arquivos e pastas serão convertidos para letras minúsculas; caso contrário, falso (.F.), não será feito nenhum ajuste no nome do arquivo informado. Valor padrão (.T.). Veja maiores informações em Observações.

 

 

Retorno

Nome

Tipo

Descrição

nRet

numérico

Retorna zero (0), se o diretório for criado com sucesso; caso contrário, retorna diferente de zero.

Observações

  • MakeDir é uma função de baixo nível que cria um diretório no disco. Quando informado um path relativo – sem unidade de disco (ex: "\home\user\teste"), o diretório será criado no servidor, abaixo do RootPath. Para criar um diretório na máquina cliente (onde o SmartClient está sendo executado), é necessário informar um path absoluto – com unidade de disco (ex: "C:\home\user\teste").
  • A função cria apenas o último diretório informado em <cPath>, não criando os diretórios intermediários, caso informados. Utilizando o exemplo de criação da pasta "\home\user\teste", o caminho completo antes da pasta teste ("\home\user") deve existir. Caso, por exemplo, a pasta user não exista, a função retornará erro e não criará o diretório.
  • O valor retornado pela função serve apenas para indicar falha na operação, mas não têm relação com a causa da falha. Para identificar o motivo do erro, devemos chamar a função FError.
  • Para a criação de um diretório na máquina cliente, quando o SmartClient estiver sendo executado em uma estação Linux e/ou Mac, também devemos informar uma unidade de disco no path; porém esta informação será ignorada pelo Smartclient, e as contra-barras separadoras do path ( "\" ) serão internamente convertidas para as barras separadoras do Linux ( "/" ). Por exemplo, a criação da pasta "C:\home\user\teste" será interpretada pelo SmartClient Linux e/ou Mac para criar a pasta "/home/user/teste", a partir da raiz de arquivos do sistema.
  • Ao executar essa função em JOB (processo isolado do servidor, sem interface), não é possível especificar um Path absoluto de disco. Caso isso seja realizado, o retorno da função será -1 e a função FError retornará -1 (Syntax Error).
  • O parâmetro opcional lChangeCase foi introduzido a partir do build 7.00.131227A pois em sistemas LINUX/UNIX, existe a diferenciação entre maiúsculo e minúsculo em nomes de arquivos ou pastas. Quando este parâmetro for informado, terá prioridade sobre comportamento de Case Sensitive definido pelas chaves de ini CASESENSITIVE ou SERVERTYPE. Porem, quando não especificado o parâmetro, o valor padrão (.T.) fica condicionado ao que está configurado nessas chaves.
  • Em ambiente Windows, os nomes de arquivos e pastas não possuem diferenciação entre maiúsculo e minúsculo, logo, a função conseguirá tratar a pasta apontada por cPath independente do valor definido no parâmetro lChangeCase.

Exemplos

user function exmkdir()
  Local nRet := MakeDir( "\test" )
  
  if nRet != 0
    conout( "Não foi possível criar o diretório. Erro: " + cValToChar( FError() ) )
  endif
  
return

Abrangência

Todas as versões

Veja também

  • Sem rótulos