ufabc-bcc / 2019.Q1.SO.BrisaFS

Projeto de Programação - BrisaFS
3 stars 5 forks source link

Forma de criação MKDIR #4

Open iRitiLopes opened 5 years ago

iRitiLopes commented 5 years ago

Estava implementando a feature de criação de diretório e surgiu uma dúvida. No momento da criação/montagem do filesystem, deve-se criar um diretório raiz '/' de verdade no disco e a partir dai os arquivos serem inseridos na sua lista de arquivos? Seria uma abordagem válida? No exemplo de criar um diretorio chamado 'pasta', a API recebe um path semelhante a '/pasta/' ou num caso mais generico '/subpasta/pasta/', deveria procurar na minha raíz se existe um diretório 'subpasta/' e assim criar o inode e bloco de 'pasta/' e por fim adicionar o elemento 'pasta' na lista de arquivos de 'subpasta'?

Parece confuso, creio que por isso eu esteja confundindo ou deixando algo passar

francesquini commented 5 years ago

No momento da criação/montagem do filesystem, deve-se criar um diretório raiz '/' de verdade no disco e a partir dai os arquivos serem inseridos na sua lista de arquivos? Seria uma abordagem válida?

Sim, seria uma abordagem válida. A minha implementação (que é parcial) assume implicitamente a existência de um /. Caso você crie um diretório raiz para representar o /, apenas tenha o cuidado de não permitir diretórios irmãos do /.

No exemplo de criar um diretorio chamado 'pasta', a API recebe um path semelhante a '/pasta/' ou num caso mais generico '/subpasta/pasta/', deveria procurar na minha raíz se existe um diretório 'subpasta/' e assim criar o inode e bloco de 'pasta/' e por fim adicionar o elemento 'pasta' na lista de arquivos de 'subpasta'?

ops, me perdi. Se você adicionar pasta na lista de arquivos de subpasta, então pasta estaria contido em subpasta. É isso?

De qualquer forma, sim, uma maneira de organizar seria criar um sub-diretório como um arquivo dentro do diretório pai. Você pode colocar uma flag na entrada de cada arquivo para indicar o seu tipo: arquivo comum ou diretório.