[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Re: Dúvida nas pastas



Oi Tiago,

>    Continuando as dúvidas no Maildir, agora estou com uma dúvida nas
> pastas. Uma 'Pasta' criada através do método <usuario pastaRaiz
> criaPasta: 'inbox'> deve ser representada fisicamente de que maneira?
> Uma subpasta de 'cur'? Pelo que li nas especificações de Maildir, não
> entendi muito bem.

A maneira mais natural de representar essa pasta seria do jeito que
você disse: como uma subpasta de cur, no próprio sistema de arquivos.
O problema é que podem haver mensagens não-lidas no inbox, ou o
usuário pode resolver marcar como não lida uma mensagem que fazia
parte de um subdiretório. Daí surge o problema: como manter essa
informação? Uma possível solução prá isso seria duplicar a estrutura
de pastas no new. O Mutt, por outro lado, usa um negócio um pouco
diferente. Suponha que você tem dois subdiretórios, inbox e trash. O
Mutt representaria isso da seguinte forma:

/Maildir/inbox/cur
/Maildir/inbox/tmp
/Maildir/inbox/new
/Maildir/trash/cur
/Maildir/trash/tmp
/Maildir/trash/new

Ou seja, ao invés do Mutt duplicar a estrutura de diretórios no new (e
no tmp), ele replica o cur, tmp e new em cada subdiretório. O Mutt tem
ainda um negócio extra que é o conceito de categoria. Uma categoria é,
essencialmente, um diretório que não pode conter mensagens, só outras
categorias e subdiretórios. No sistema de arquivos, uma categoria é um
diretório sem cur, tmp e new. Por exemplo, se eu tiver a categoria
2005 e a categoria 2006 e cada uma tiver seu inbox, teríamos:

/Mailbox/2005/cur
/Mailbox/2005/tmp
/Mailbox/2005/new
/Mailbox/2006/cur
/Mailbox/2006/tmp
/Mailbox/2006/new

> Ficou meio confuso o que pode ser subpasta e o que
> não pode e onde colocá-las.

Espero que eu tenha ajudado a clarificar isso. A API pública não expõe
a esquizofrenia do Maildir. :-) O usuário da API pública vive sob a
confortável ilusão de que a estrutura de pastas é unificada e simples.

Abraços,

--
Giuliano Mega <giuliano*ime:usp:br>