PT-BR/fileOpen
Jump to navigation
Jump to search
Abre um arquivo existente para leitura e gravação.
Nota: Para prevenir perdas de memórias, garanta que cada execução bem sucedida de fileOpen tenha um fileClose para fechar o arquivo aberto. | |
Dica: As funções que manipulam arquivos não devem ser utilizadas para implementar arquivos de configuração. É recomendado usar as funções XML. | |
Aviso: A partir da versão 1.5.4 r10413, esta função vai falhar quando tentar acessar um arquivo de script de outro resource, até mesmo com a permissão general.ModifyOtherObjects concedida, que usa uma conexão mysql através de dbConnect quando database_credentials_protection estiver habilitado na configuração do servidor. Além disso, não será mais possível gravar no meta.xml, ele será aberto apenas em modo leitura. | |
Sintaxe
file fileOpen ( string filePath [, bool readOnly = false ])
Sintaxe POO(OOP) Não entendeu o que significa isso?
- Nota: A função vai apenas tentar abrir o arquivo, não vai criá-lo.
- Método: File(...)
Argumentos necessários
- filePath: O caminho do arquivo a ser criado seguindo o seguinte formato: ":resourceName/path". resourceName é o nome do resource do arquivo que vai estar lá, e path é o caminho do arquivo relativo ao diretório do resource.
- Por exemplo, se existir um arquivo chamado coolObjects.txt no resource objectSearch, esse arquivo pode ser aberto de um outro resource dessa forma:
fileOpen(":objectSearch/coolObjects.txt")
. - Se o arquivo está no resource atual, apenas o caminho do arquivo é necessário, ex.: <
fileOpen("coolObjects.txt")
.
Argumento opcional
- readOnly: Por padrão, o arquivo é aberto com acesso de leitura e gravação. Você pode especificar true para esse argumento se você quiser o acesso apenas para leitura.
Retorno
Se aberto com sucesso, retorna o arquivo (objeto-arquivo) especificado. Caso contrário retorna false (ex.: se o arquivo não existir).
Exemplo
Este exemplo abre o arquivo "test.txt" que está na raiz do resource atual (onde o código tá sendo executado), e exibe o seu conteúdo no console.
local hFile = fileOpen("test.txt", true) -- tentamos abrir o arquivo (em modo leitura) if hFile then -- verificamos se foi aberto com sucesso local buffer while not fileIsEOF(hFile) do -- enquanto não estivermos o final do arquivo... buffer = fileRead(hFile, 500) -- ... lemos os próximos 500 bytes ... outputConsole(buffer) -- ... e exibimos no console end fileClose(hFile) -- fechamos o arquivo depois de trabalhar com ele else outputConsole("Unable to open test.txt") end
This example show how to append data to an existing file: Este exemplo mostra como inserir (sem substituir) um dado em um arquivo existente:
local hFile = fileOpen("test.txt") -- tentamos abrir o arquivo (em modo leitura e gravação) if hFile then -- verificamos se foi aberto com sucesso fileSetPos( hFile, fileGetSize( hFile ) ) -- movemos a posição para o fim do arquivo fileWrite(hFile, "hello" ) -- inserimos o valor que queremos fileFlush(hFile) -- Forçamos a gravação imediata do valor que inserimos no arquivo fileClose(hFile) -- fechamos o arquivo depois de trabalhar nele else outputConsole("Unable to open test.txt") end
Veja também
- fileClose
- fileCopy
- fileCreate
- fileDelete
- fileExists
- fileFlush
- fileGetPath
- fileGetPos
- fileGetSize
- fileIsEOF
- fileOpen
- fileRead
- fileRename
- fileSetPos
- fileWrite