[Examen febrero 2018] [Ejercicio 2]

[Examen febrero 2018] [Ejercicio 2]

de Franco Danilo Wanseele Gonzalez -
Número de respuestas: 2

Tengo una duda con respecto a la solución de la parte 2, se pide implementar una función buscar, que pasa como parámetro el camino hacia el elemento que se desea obtener. La solución es la siguiente: 



Mi duda es la siguiente;

si supongo un ejemplo de entrada, cam = 'Users\sistoper\a.txt' entonces la primera vez que se llama a parteCamino, elem = Users y se busca dentro del sector 0 en la FAT. 

Se puede asumir que el directorio 'Users' se encuentra en el sector 0 de la FAT? Si es así, por que se puede suponer eso?

Siguiendo con el ejemplo, la solución que yo pense es buscar a 'Users' en el sector 0 de la FAT y si no se encontraba seguir buscando en el sector 1 de la FAT y así sucesivamente hasta encontrar el primer directorio. Y una vez encontrado seguiría con la búsqueda de forma similar a como está en la solución. 

En respuesta a Franco Danilo Wanseele Gonzalez

Re: [Examen febrero 2018] [Ejercicio 2]

de Leonela Ruth Pereira Perez -

hola,

te respondo parte de lo que planteaste.

la letra te dice que cam es la ruta completa, por lo tanto, el primero de los directorios serìa el directorio raiz; tomando como base tu ejemplo, Users\ sería el directorio Raiz.

Por letra sabes que el directorio raiz comienza en el sector 0 de D.

A su vez, los indices de la FAT se corresponden con los sectores de D. Es decir, el indice i de la FAT se corresponde al sector i del disco.

Si el directorio raiz ocupa más de un sector, en la posición 0 de la FAT lo que vas a tener es el indice de la FAT(que se corresponde a un sector) donde continua el directorio raiz.


Retomando tu ejemplo:

Users\ estaría en el sector 0, donde tendrìas un array de dir_entries... a partir de ahí tendrías que empezar a recorrer.

Espero se entienda y si me equivoco que alguien me corrija.

Saludos.


En respuesta a Leonela Ruth Pereira Perez

Re: [Examen febrero 2018] [Ejercicio 2]

de Santiago Iturriaga -

Hola:

Van algunas aclaraciones al respecto.

El directorio raíz no tiene nombre por la simple razón de que no tiene una entrada de directorio que lo referencie (por eso se lo llama simplemente "raíz"). Recuerden que los nombres de los archivos/directorios no están en los inodos ni en la FAT sino que están en las entradas de directorio. Además el directorio raíz se ubica en un lugar especial reservado (en general el primero inodo o primer entrada de la FAT) y se lo identifica con una barra (p.ej. "\" en Windows y "/" en Unix).

Entonces una ruta completa podría ser cam = '\Users\sistoper\a.txt'. Esta ruta hace referencia a un subdirectorio "Users" que está dentro de la raíz, un subdirectorio "sistoper" que está dentro de ese directorio "Users", y un archivo "a.txt" que está dentro de ese directorio "sistoper".

Sobre la pregunta de Franco: "Se puede asumir que el directorio 'Users' se encuentra en el sector 0 de la FAT? Si es así, por que se puede suponer eso?"

"Users" debería estar en el directorio raíz (si no lo está es un caso de error) pero no pueden asumir que esté en el sector 0. Como dice Leonela, puede ser que esté en algún otro bloque del directorio raíz asociado por la FAT.

Saludos,
Santiago.