Ir para conteúdo

POWERED BY:

Arquivado

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

jackvalantine

problemas em deletar pastas e arquivos

Recommended Posts

oba pessoal beleza, o problema é que não estou conseguindo deletar uma pasta e seus arquivos, está pasta e criada pelo usuario e os arquivos tb são enviados por ele, depois de um certo tempo o usuario pode excluir a pasta, o problema é que quando o usuario envia os arquivos que na realidade são fotos o sistema automaticamente cria uma pasta chamada "_note", esta pasta fica oculta, e grava alguns dados da imagem nela....gostaria de saber como deletar ela tb, não manjo muito, ja dei uma procurada no forum, vi muitos artigo que fazem isso porem apos testa - los não obtive sucesso....se alguem puder me ajudar eu agradeço......segue o codigo

<?phpsession_start();include ('conexao.php');$diretorio = $_POST["excluir_diretorio"];			if($diretorio=="")		{			$mensagem = "<img src=\"image/sistema/home/gif aguardado.gif\" width=\"150\" height=\"45\"/>";		}	if($diretorio!="")				{							$handle = opendir($diretorio);				while(false != ($arq = readdir($handle))) 					{                		if ($file != '.'  ||  $file != '..')						{						$diretorio ."/";                     		echo $arq;                			unlink($diretorio . $arq);						}                                          closedir($diretorio);					}if(@rmdir($diretorio)){ 	$conecta = "SELECT serial FROM cad_lumini_foto where cad_diretorio_foto = '$diretorio' group by serial";		$resultado = pg_query($conecta);		$sql = pg_fetch_array($resultado);		$serial = $sql[0];		$apaga = "DELETE FROM cad_lumini_foto WHERE serial='$serial'";		$resulta = pg_query($apaga);		$mensagem = "<img src=\"image/sistema/home/criado.gif\" width=\"150\" height=\"45\"/>";}else{	$mensagem = "<img src=\"image/sistema/home/erro.gif\" width=\"150\" height=\"45\"/>";}}

Compartilhar este post


Link para o post
Compartilhar em outros sites

experimenta por isso

 

unlink($diretorio . "/" . $arq);

^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

ao dar um echo no nome do arquivo ele me retorna isso:...foto1.jpgfoto2.jpggostaria de saber o que seguinifica o . e o .. já que na minha pasta eu só tenho os arquivos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

diretorio...

Abrir um diretório e mostrar somente os sub-diretórios (sem os diretórios "." e "..").

function diretorios($diretorio) {	if (is_dir($diretorio)) {		if ($dir = opendir($diretorio)) {			while(false !== ($arq = readdir($dir))) {				if (is_dir($diretorio . $arq) && $arq != "." && $arq != "..") {					 echo $arq . "<br />";				}			}		}	}}
veja o artigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal consegui fazer com os arquivos fossem sendo apagados, mas o problema de quando ele encontra um diretório no meio não apaga.segue o codigo que apaga os arquivos.....

$handle = opendir($diretorio);				while(false != ($arq = readdir($handle))) 					{                		if ($file == '.'  ||  $file == '..')						{						echo "não deleta nada";						}						else						{							@unlink($diretorio."/".$arq);						}					}closedir($handle);@rmdir($diretorio)

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça uma verificação se o arquivo eh um diretorio ou não, se for, chame a função outra vez. Faz uma recursividade

Compartilhar este post


Link para o post
Compartilhar em outros sites

recursividade eh quando uma função chama ela mesma

 

tipo:

funcao TESTE(DIRETORIO) {   abre o DIRETORIO   enquanto DIRETORIO não for vazio {	  ARQUIVO_ATUAL = ARQUIVO_DO_DIRETORIO	  se ARQUIVO_ATUAL for um arquivo {		 mostra o nome do arquivo	  } se não {		 TESTE(ARQUIVO_ATUAL)	  }   }}

assim, se a função achar um diretorio dentro do diretorio raiz, ele chama a mesma função com o novo diretorio

assim ele vai chamando a função até listar todos os diretorio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta aí:

 

rmdir

<?php

 

function rmdir_rf($dirname) {

if ($dirHandle = opendir($dirname)) {

chdir($dirname);

while ($file = readdir($dirHandle)) {

if ($file == '.' || $file == '..') continue;

if (is_dir($file)) rmdir_rf($file);

else unlink($file);

}

chdir('..');

rmdir($dirname);

closedir($dirHandle);

}

}

 

?>

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.