Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Makloud

Como verificar se arquivo esta aberto

Recommended Posts

Bem pessoal meu problema é o seguinte:

 

Tenho um programa que o usuario abre um arquivo txt.

 

E tenho um painel em php que preciso saber se este arquivo txt está aberto e caso estiver ser enviada uma mensagem proibindo que eu edite ele.

 

Como posso fazer?

 

Ja olhei varios comandos mas nada deu resultado ainda e preciso disse senao meu sistema sera falho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

utilize o flock

 

seria algo equivalente ao FileShare.none do .NET

 

exemplo em PHP

$rs = fopen("PATH", "a+");

if ( flock($fp, LOCK_EX) ) { 
  // não está em uso
} else {
  // outro processo está usando
}

consulte:

 

http://php.net/flock

 

* aplicavel somente sob ambiente win32 com sistema de armazenamento NTFS

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como é um server locado não sei dizer se ele possui armazenamento NTFS, mas testei e mesmo abrindo o arquivo ele ainda deixa que eu possa mexer no arquivo.

 

Veja como fiz:

 

 

//OBS: esse .war é um arquivo que contem texto

$arquivo= "C:/server/arquivos/nome.war";

 

 

$fp = fopen("$arquivo", "a+");

 

if ( flock($fp, LOCK_EX) ) {

echo "Pode usar";

} else {

echo "Não Pode usar";

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

NTFS é um sistema de armazenamento de dados no disco rígido.

está disponível desde o windows 98

 

se o sevidor do seu host for windows, provavelmente está usando NTFS

 

execute o script, faça debugs e veja se funciona..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.