Ir para conteúdo

POWERED BY:

Arquivado

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

Marcelo Bombonato

Como saber todas as pastas e suas subpastas no servidor

Recommended Posts

pessoal to com um problema pra conseguir desenvolver um codigo capaz de verificar todas as pastas e sub pastas no servidor... de preferencia usando fsoservidor-data--empresa1--empresa2-web--site1---imagens----fotos-----grandes-----miniaturas---includes--site2--site3mas pensem como se as ramificações fossem (qq numero que eu nunca saiba qual o nivel maximo que existe em relação à diretório) infinitas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O princípio está a seguir...

Agora cabe a você implementar com JS, para fazer uma visualização mais dinâmica...

<html><head><title>-</title><style type="text/css">BODY	{font:8pt Tahoma; color:#333333}</style></head><body><B><% 	set fso = CreateObject("Scripting.FileSystemObject") 	for each drive in fso.Drives 		cDriveName = fso.GetDriveName(drive) 		set cDrive = fso.GetDrive(drive) 		if cDrive.DriveType=2 then 			response.Write cDriveName & "  " &_ 			formatnumber(cDrive.FreeSpace/1024/1024,0) &_ 			" MB livres<br>" 		end if 	next 	set fso = nothing %></B><BR><BR><%if request.querystring("pastas") <> "" then	caminho= trim(Request.QueryString("pastas"))	%>	<a href="pastas_server.asp?pastas=">VOLTAR</a><BR>	Caminho: <%=replace(caminho,"/", " / ")%> / <BR><BR>	<%	Set objFSO = CreateObject("Scripting.FileSystemObject") 	Set objPasta = objFSO.GetFolder(Server.MapPath(caminho)) 	For Each ObjSubPasta in ObjPasta.Subfolders	%> 	<a href="pastas_server.asp?pastas=<%=caminho%>/<%=ObjSubPasta.Name%>"><%=ObjSubPasta.Name%></a><BR>	<% Next %>		<BR><BR>	<% 	Set objSub = objFSO.GetFolder(Server.MapPath(caminho)) 	For Each file in ObjSub.Files %> 	<%=file.Name%><BR>	<% 	Next	set objSub = nothing 	set objPasta = nothing 	set objFSO = nothing 	%><%else	Set objFSO = CreateObject("Scripting.FileSystemObject") 	Set objPasta = objFSO.GetFolder(Request.ServerVariables("APPL_PHYSICAL_PATH")) 	For Each ObjSubPasta in ObjPasta.Subfolders	%> 	<a href="pastas_server.asp?pastas=<%=ObjSubPasta.Name%>"><%=ObjSubPasta.Name%></a><BR>	<% 	Next	set objPasta = nothing 	set objFSO = nothing end if%></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

testei o script tirando o if... mas ele deu erro de server.mappath Set objPasta = objFSO.GetFolder(Server.MapPath(caminho)) ae coloquei um diretorio qualquer no caminho e ele so me exibiu o diretorio daquele caminho... e logo abaixo o diretorio mapeado no meu caso o diretorio web ---------------------------------------------inicio resposta pagina-----------------------------C: 34.197 MB livresD: 690 MB livresE: 2.939 MB livresVOLTARCaminho: / web / acnet / / admalbumatualbarrabasicocabecalhoclarocoresdicasdireitosdownloadsespeciaisestilofaleconoscofuncoesgooglehomeibaladasimagensjavascriptlayoutlinkslogonositemateriasmenumircmuralnoticianoticiaspropagandarodapesaudacaotempototentradutoruploadvariaveis1vendasvisitaswebmailedittable.zipestilo.aspestilo.cssFile.Historyindex.aspjavascript.jsproppeq.asptabela.asptable1.zipacnetacnet1albumarturasp-uploadbiomedicecommerceexplorernethappyladynpjsantacasasitedomarcelosuggesttcbtesteteste2UploaduploadajaxwebcosmoWeb_Tools-----------------------fim resposta pagina------------------------------infelizmente acho que no meu caso preciso eh de uma funcao recursiva que vai investigando diretorio por diretorio até chegar no finalalguem mais

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu havia feito isso a algum tempo. Criei uma Sub que chamava ela mesma. Vou tentar localizar e posto aqui essa parte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz, não encontrei, deve ter ficado no antigo emprego.

 

Mas não é complicado de adaptar esse script que já te passaram para virar uma função recursiva.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, achei isso na net:

<% 	Dim fso, rootFolder,regEx	Set regEx = New RegExp' Create regular expression.	Set fso=Server.CreateObject("Scripting.FileSystemObject") ' Create File System Object	'set rootFolder = fso.GetFolder(server.M	'	 apPath("/sites")) 'Root folder	Set rootFolder = fso.GetFolder(server.mappath("downloads")) 'Root folder	call funcFolderTree(rootFolder.path,0) 'Call function To write tree	'## BASIC RECURSIVE FOLDER FUNCTION	function funcFolderTree(thisfolder,startlevel) 		'## Create variables		Dim subFolder, objFolder, startPos,thislevel		'## starting level		if isnull(startlevel) or startlevel < 1 Then startlevel = CountMatches("\\",thisfolder)+1				'## NO MORE FOLDERS, Exit function		if isEmpty(thisfolder) Then Exit function		'## Set folder objects			Set objFolder = fso.GetFolder(thisfolder)	Set subFolder = objFolder.subFolders 		For Each item In subFolder 			thislevel = CountMatches("\\",cstr(item))-startlevel			For intPos = 1 To thislevel				response.write "  "			Next			response.write item.name			response.write "<BR>" & vbcrlf			call funcFolderTree(Cstr(item),startlevel)	Next 	End function	'## REGULAR EXPRESSION COUNTING FUNCTION	'	 	function CountMatches(patrn, strng)	Dim Match, Matches, intPos' Create variable.	regEx.Pattern = patrn' Set pattern.	regEx.IgnoreCase = True' Set case insensitivity.	regEx.Global = True' Set global applicability.	Set Matches = regEx.Execute(strng)' Execute search.	For Each Match In Matches' Iterate Matches collection.	intPos = intPos + 1	Next	CountMatches = intPos	End function	%>
Agora só colocar o js.

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.