Ir para conteúdo

POWERED BY:

Arquivado

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

Matuzalém Teles

Busca o nome da pasta

Recommended Posts

Olá galera, não sei muito bem como definir isto, mais o que acontece, eu estou estudando um gerenciador de arquivos o FileGator, O que acontece eu estou adicionando um simples sistema que avisa os usuários se existe esta pasta um exemplo.

<?php
            $nome = "user/".$_SESSION['user_name']."/Pasta Fixada=/Pasta Aleatório 1/Pasta Aleatório 2/Arquivofixo.txt";
           
            if (file_exists($nome)) { ?>
                <img class="tip" title="Existe" src="img/Aviso.png">
            <?php } else { ?>
                <img class="tip" title="Mensagem Ok!" src="img/Ok.png">
            <?php }
            ?>

O que acontece ali com o script que fiz, Ele ver o caminho da minha pasta onde se o Arquivofixo.txt existe ele mostra um ícone vermelho se não mostra um ícone verde, bem ocorre tudo bem esta parte, mais ai que vem, o FileGator ele mostra todas as pastas eu quero pegar estas pasta é jogar no link, Tipo a Pasta Aleatório 1 ele pode ser criada pelo usuário, então não sei qual ira ser o nome é a Pasta Aleatório 2 também é o mesmo não sei qual ira ser o nome, já o ultimo arquivo o Arquivofixo.txt ele ira existir sempre sera este nome, então o que acontece é que preciso colocar algum código no arquivo $nome para busca os nomes das pastas, Pasta Aleatório 1 é Pasta Aleatório 2.

 

Ajuda Plz '-'

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

cadastrar no banco de dados os nomes das pasta criadas e depois fazer uma consulta...?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com a Função mkdir(Tutorial) você pode criar uma pasta no PHP, apos o usuário criar a Pasta, Salva o nome dela no banco de dados.

Com a função opendir(Tutorial) Você pode manipular os diretórios de algum diretório(o.O) kk, enfim ele irá imprimir todo conteúdo em algum diretório e você pode pegar o tipo do conteúdo também para verificar se é um diretório.

Veja também a função readdir(Tutorial).

 

Você também pode salvar de algum forma o nome do diretório que o usuário criar assim tornará tudo 100% mais fácil, Enfim eu nunca trabalhei com algum sistema parecido então não sei se isso adiantará de muita coisa achei meio que na correria mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim já pensei nisto de cadastrar no banco de dados, mais a "Pasta Aleatório 2" é criado em um programa então teria que modificar muita coisa lá é complicaria. já a "Pasta Aleatório 2" da para cadastrar no banco de dados mais o problema é que o outro não daria certo, estou pensando aqui, mais não consigo ver a solução para o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php
$Diretorio = "user/".$_SESSION['user_name']."/";
if (is_dir($Diretorio)) 
{
	if ($dir = opendir($Diretorio)) 
	{
        while (($file = readdir($dir)) !== false) 
		{
            if(filetype($Diretorio.$file) == "dir")
			{
				$Diretorio.=$file;
				return 1;
			}
        }
        closedir($dir);
    }
}
?>

Assim você vai pegar a "Pasta aleatória 1", depois faz a mesma coisa para pegar a pagina aleatória 2, mais enquanto tiver pasta para encontrar você pode usar esse sistema, Não sei se está correto não entendo muito bem do assunto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo ele vai pegar um Diretório estático e vai verificar todo o conteúdo que tem dentro deste diretório, e vai verificar se o conteúdo que está verificando é um diretório se for um diretório ele irá adicionar o nome do diretório encontrado a variavel de diretório estática, assim você irá ter o diretório inicial+ o diretório encontrado dentro do diretório inicial(o.O), bom não sei se funciona 100% e se tiver mais de 1 diretório pode ocasionar problemas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então mais tipo você que verificar em todas?

Se quiser você pode criar uma array de diretórios mais irá gerar um sistema bem grande.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo o que acontece na minha listagem de diretório, ele mostra todas as pastas é pode percorrer o Sub-Diretório, Então cada usuário tem uma pasta, fica assim "user/Joao/.." então aparte dai ele pode ficar criando as suas pastas, ai vem "user/Joao/Pasta dele/Pasta dele 2/Arquivo fixo.txt" então a "Pasta dele 2" é criada pelo um programa que envia o "Arquivo fixo.txt" é ai fica neste diretório, O que acontece é que eu estou verificando se nestas pasta existem o "Arquivo fixo.txt", ai fica mais ou menos assim visualmente.

 

Pastas | Existe

--------------------------------------

Pasta aleatória | Não existe

Pasta aleatória 2| Existe

Pasta aleatória 3| Existe

Pasta aleatória 4| Não existe

Pasta aleatória 5| Não existe

 

Ai ele só verifica se nesta pasta contem o arquivo. entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php
$Diretorio = "user/".$_SESSION['user_name']."/";
$ID_While = 0;
$Diretorios = array();
if (is_dir($Diretorio)) 
{
	if ($dir = opendir($Diretorio)) 
	{
        while (($file = readdir($dir)) !== false) 
		{
            if(filetype($Diretorio.$file) == "dir")
			{
				$ID_While++; $Diretorios[$ID_While] = $Diretorio.$file.'/';
			}
        }
        closedir($dir);
    }
}
//Depois para verificar nos diretorios
for($i = 1; $i <= count($Diretorios); $i++)
{
	if(is_dir($Diretorios[$i]))
	{
		if(file_exists($Diretorios[$i].'Arquivo.txt'))	
		{
			//Existe o arquivo nesta pasta	
		}
		else
		{
			//não existe	
		}
	}
}
?>

eu fiz esse pequeno exemplo, não sei se está totalmente correto, Tipo se for "user/joao/pasta/" irá dar certo mais se for "user/joao/pasta/pasta/" não irá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele repete porque está em um loop, você pode fazer o seguinte:

<?php
$Diretorios_Existentes = "";
for($i = 1; $i <= count($Diretorios); $i++)
{
	if(is_dir($Diretorios[$i]))
	{
		if(file_exists($Diretorios[$i].'Arquivo.txt'))	
		{
			if(empty($Diretorios_Existentes) || $Diretorios_Existentes == "")
			{
				$Diretorios_Existentes = $Diretorios[$i];
			}
			else
			{
				$Diretorios_Existentes .= ','.$Diretorios[$i];
			}
		}
		else
		{
			//não existe	
		}
	}
}
echo "O Arquivo existe nestes diretórios: ".$Diretorios_Existentes;
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz o seguinte, Use esse código aqui:

for($i = 1; $i <= count($Diretorios); $i++)
{
	if(is_dir($Diretorios[$i]))
	{
		echo $Diretorios[$i].'<br />';
	}
}

e Vê se ele imprime todos os diretórios corretamente, e verifica se em todos os diretórios termina com uma '/', verifique também o nome dos diretórios se estão corretos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro vamos remover estas pastas não existentes:

if (is_dir($Diretorio)) 
{
	if ($dir = opendir($Diretorio)) 
	{
        while (($file = readdir($dir)) !== false) 
		{
            if(filetype($Diretorio.$file) == "dir" && $file != "." && $file != "..")
			{
				$ID_While++; $Diretorios[$ID_While] = $Diretorio.$file.'/';
			}
        }
        closedir($dir);
    }
}

Por algum motivo a função mostras os diretórios anteriores, agora sobre dizer que existe o arquivo em todos os diretório eu não sei bem porque.

for($i = 1; $i <= count($Diretorios); $i++)
{
	if(is_dir($Diretorios[$i]) == true)
	{
		if(file_exists($Diretorios[$i].'Arquivo.txt'))	
		{
			if(empty($Diretorios_Existentes) || $Diretorios_Existentes == "")
			{
				$Diretorios_Existentes = $Diretorios[$i];
			}
			else
			{
				$Diretorios_Existentes .= ','.$Diretorios[$i];
			}
		}
		else
		{
			//não existe	
		}
	}
}

tenta usar:

for($i = 1; $i <= count($Diretorios); $i++)
{
	if(is_file($Diretorios[$i]) == true)
	{
		if(is_file($Diretorios[$i].'Arquivo.txt') == true)	
		{
			if(empty($Diretorios_Existentes) || $Diretorios_Existentes == "")
			{
				$Diretorios_Existentes = $Diretorios[$i];
			}
			else
			{
				$Diretorios_Existentes .= ','.$Diretorios[$i];
			}
		}
		else
		{
			//não existe	
		}
	}
}

Como eu disse é a primeira vez que utiliza tais funções então não tenho um grande conhecimento sobre elas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Blz, ainda esta algo errado ou estou fazendo errado,

Mas olhando aqui eu analisei os códigos do FileGator, é ele tem uma função onde imprime o url do diretório onde estou.

Está

"<?php echo gator::encodeurl($file['link'])?>"

Ele mostra mais ou menos assim:

"Admin/Pasta Fixa/Pasta Aleatorio 1/Pasta Aleatorio 2"

Então o que eu poderia fazer é :

 

<?php
			
            $filename = "user/".gator::encodeurl($file['link'])."/Arquivo.txt";
           
            if (file_exists($filename)) { ?>
			
                //existe
            <?php } else { ?>
               // Não existe
            <?php }
            ?>

Só que esta algo errado que não esta funcionando.

 

Link do Downloa do FileGator: http://prefiles.com/iq9blog2rwcp/codecanyon-3041013-filegator.zip

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.