Dec 1, 2006

Aplicativo (útil) da Semana - Parte 2

Como sempre a falta de tempo tem me impedido de postar mais frequentemente :( De qualquer forma, hoje pretendo apresentar um aplicativo bastante útil que usuários do Unix/Linux já estam bastante acostumados mas, por motivos que não importam, a marioria dos usuários do Windows desconhecem. Quando comecei a trabalhar na empresa que me encontro atualmente me deparei com a seguinte situação: todos os desenvolvedores criavam uma estrutura de diretórios fixa (por exemplo: c:\Projetos\NomeProjeto, ou algo parecido) e algumas ferramentas dependiam destes caminhos (pois usavam caminhos absolutos). Como sempre tive o habito de particionar meus HDs em pelo menos duas partições (uma para dados e a outra para programas) o drive C ficou para o SO (sistema operacional) e a partição de dados acabou ficando como E (ok, eu sei que posso mudar este mapeamento, mas eu não queria fazer isto por outros motivos). Para resolver este impasse (eu desejava colocar o diretório de projetos no drive E, mas algumas ferramentas esperavam que o mesmo se encontrasse no drive C) eu criei um Junction Point (ou ponto de junção) no drive C apontando para o drive E. Junction Points permitem que sejam criados links para diretórios em qualquer volume (por exemplo o diretório c:\projetos pode ser um Junction Point, ou seja, pode apontar, para o diretório c:\meus documentos\projetos). Assim, para solucionar o impasse fiz o seguinte:
  • Criei a estrutura de diretórios no drive E (E:\Projetos\Nome Projeto)
  • No drive C eu criei um Junction Point chamado Projetos apontando para E:\Projetos
  • desta forma ao acessar o diretório c:\Projetos na realidade estou acessando E:\Projetos.
O resultado pode ser visto na seguinte imagem: Observe que o c:\Projetos aparece no console como JUNCTION (e não como DIR como os demais diretórios) enquando e:\Projetos é apresentado (como era de se esperar) como DIR, indicando que o mesmo é um diretório comum. Agora, todas as operações que forem realizadas em c:\projetos na realidade estarão sendo realizadas em e:\projetos. E como criamos (manipulamos) Junction Points? A resposta rápida é que apesar do Windows suportar Junction Points desde o Windows 2000, por algum motivo que desconheço, a MS não possui uma forma simples para manipular Junction Points (aqui você pode encontrar explicações [em inglês] de como criar Junction Points com ferramentas da própria MS). Porém nem tudo esta perdido :). Você pode encontrar utilitários (gratuítos) que manipulam Junction Points aqui, aqui e aqui. Eu, particularmente, uso a primeira delas pois a mesma permite criar também Hard Links e Symbolik Links (no Windows Vista) além de possuir versões para x86 e x64.

No comments: