Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boas, tenho um sistema de gerenciamento de arquivos e pastas e imagine que tenho uma hierarquia para tal, ex:
--cliente
----2010
------jan
--------docs
--------imgs
------fev
--------docs
--------imgs
------mar
etc...
Esta mesma hierarquia para vários clientes, agora o que preciso saber se é possível é para que quando criar uma nova pasta para um Cliente, automaticamente criar a mesma hierarquia de subpastas. Se sim podem me dar uma diretriz de como fazer?
Grato
existe um exemplo, tipo explorer, pode te ajudar, ou até mesmo uma estrutura tipo tree
Então é assim: Através do sistema eu já faço a criação das pastas, mas indivudalmente, por exemplo cria na raiz a pasta para o "cliente X" dentro desta uma pasta "2010" e dentro desta crio uma para cada mês "jan" "fev" "mar" etc... e dentro de cada mês mais uma dezena de pastas e subpastas, só que como todos os clientes terão a mesma hierarquia de pastas, queria que na inclusão de um novo "cliente Y" automaticamente fosse criado a mesma hierarquia de pastas para este, evitando um trabalhão danado de criar indivualmente pasta por pasta...
Att.
você pode usar até um XML para especificar a estrutura e criar atraves dele tipo um menu estilo treeview
Estou a fazer da seguinte forma: Vou enviar a variável "cliente" e "ano" para o script, neste recupero e vou ter os meses em um array para depois efetuar um loop na criação das pastas incluindo as outros nomes de sub-pastas (já que estas terão nomes fixos, exceto os meses).
No script, crio o objeto FSO e vou através de condições, checando pasta por pasta para ver se existe, caso contrário faz a criação... Só que vão ser dezenas de if's, então pergunto: Tem como otimizar isso? ou é por aí mesmo? Vejam o exemplo de como estou fazendo:
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
if not objFSO.FolderExists(Server.MapPath(varAno&"/"&varMes&"/"&varPastaA)) then
objFSO.CreateFolder(Server.MapPath(varAno))
objFSO.CreateFolder(Server.MapPath(varAno&"/"&varMes))
objFSO.CreateFolder(Server.MapPath(varAno&"/"&varMes&"/"&varPastaA))
Response.Write("Create folder :"&varAno&"/"&varMes&"/"&varPastaA&"<br />")
if not objFSO.FolderExists(Server.MapPath(varAno&"/"&varMes&"/"&varPastaB)) then
objFSO.CreateFolder(Server.MapPath(varAno&"/"&varMes&"/"&varPastaB))
Response.Write("Create folder :"&varAno&"/"&varMes&"/"&varPastaB&"<br />")
if not objFSO.FolderExists(Server.MapPath(varAno&"/"&varMes&"/"&varPastaC)) then
objFSO.CreateFolder(Server.MapPath(varAno&"/"&varMes&"/"&varPastaC))
Response.Write("Create folder :"&varAno&"/"&varMes&"/"&varPastaC&"<br />")
if not objFSO.FolderExists(Server.MapPath(varAno&"/"&varMes&"/"&varPastaC&"/"&varPastaCA)) then
objFSO.CreateFolder(Server.MapPath(varAno&"/"&varMes&"/"&varPastaC&"/"&varPastaCA))
Response.Write("Create folder :"&varAno&"/"&varMes&"/"&varPastaC&"/"&varPastaCA&"<br />")
end if
'e mais condições aqui para outras dezenas de sub-pastas...
end if
end ifNo meu ponto de vista você deveria criar um verto com a hierarquia.
Varrer o vetor.
Criar um função para pra verificar se a pasta existe e outra para criar a pasta.
Assim você chama as funções de acordo com a necessidade.
Mas é só um idéia.
você pode otimizar usando XML para especificar a estrutura e criar atraves dele tipo um menu estilo treeview
Xan, agradeço a atenção mas não tenho muita intimidade de XML com ASP, poderia me dar ou indicar um exemplo de como utilizar isso na minha aplicação? Já tenho o sistema rodando com gerenciamentos de pastas/arquivos, download, upload e acesso restrito em pastas, só que agora no final do processo é que surgiu este detalhe... vlw.
opa, ASPmano....
dá uma pesquisada no lab. de script que postei alguns exemplos...
Depois vejo melhor esse lance do XMl porque me pareceu bem interessante...
No momento a solução que encontrei foi utilizar alguns loops sobre loops e mais algumas condições, tá de boa, só não sei se vai comprometer o desempenho...
Att.
Você diz criar uma nova pasta via código? Se for, é só após criar uma nova pasta, colocar o código para criar as demais. Se não for isso, não entendi sua dúvida.