Como posso criar um item de menu com o botão direito do mouse para manipular um ponto de junção?

11

Como eu estou usando um SSD, mas seu tamanho é limitado, desejo poder usar pontos de junção para remapear arquivos e diretórios para o meu HDD, isso funcionaria ideal se eu pudesse criar uma extensão de shell para isso.

O comportamento ideal seria clicar com o botão direito do mouse em um diretório ou ponto de junção e ter a opção
"Manipular ponto de junção", na qual eu posso executar as seguintes ações:

  • Criar: para um diretório, mova o diretório para um local especificado e substitua-o por um ponto de junção.
    (Dir) C: \ Example se transforma em (JP) C: \ Example -> D: \ Example

  • Trocar: para um ponto de junção, desejo trocar o ponto de junção pela sua localização.
    (JP) C: \ Exemplo -> (Dir) D: \ Exemplo se transforma em (Dir) C: \ Exemplo <- (JP) D: \ Exemplo

    Isso significa que removeria o ponto de junção, moveria os dados e colocaria um ponto de junção reverso.

  • Remover: para um ponto de junção, quero removê-lo e mover o diretório de volta.
    (JP) C: \ Exemplo -> (Dir) D: \ Exemplo se transforma em (Dir) C: \ Exemplo

Minhas perguntas mais importantes:

  • Que abordagem devo adotar para fazer isso? Roteiro? Bater? Executável?
  • Como crio a entrada do menu?

Questões menos importantes:

  • Já existe uma solução desse tipo?
  • Existem comandos ou chamadas de API melhores para verificar e manipular pontos de junção?

Eu já conheço a Microsoft mklinke a Sysinternals junction.

Tamara Wijsman
fonte
Só para deixar escapar - eu realmente não consigo pensar em uma situação (ou reconhecer a que você citou) em que fazer isso é uma necessidade, ou seja, eu tentaria outras abordagens para resolver o problema mais amplo, qualquer que seja. Por que vincular arquivos SSD ao HDD?
cregox 22/09/10
Como nem tudo se encaixa no SSD, preciso mover coisas que não precisam ser rápidas para o meu HDD sem quebrar nada ... Não quero uma solução alternativa, quero uma solução.
Tamara Wijsman
Fizemos uma postagem no blog sobre como maximizar a vida útil do seu SSD .
Tamara Wijsman
relacionado: superuser.com/questions/95862/…
cregox

Respostas:

17

Como você perguntou se essas soluções já existem, você já viu o Junction Link Magic ou o Link Shell Extension ?

O Junction Link Magic permite a criação, modificação e remoção de pontos de junção. É freeware e suporta o Windows 7.

A Extensão do Shell de Link também oferece a mesma funcionalidade e também é freeware. Também suporta o Windows 7.

ATUALIZAÇÃO : o site original do Junction Link Magic está 404 agora. Substituí um link da Softpedia por aqueles que ainda desejam instalar o JLM.

Isxek
fonte
Por alguma razão, lembro-me vagamente do @TomWij mencionando esses softwares em um comentário sobre uma pergunta relacionada ao ponto de junção / hardlink aqui no SU. Eu simplesmente não consigo encontrar a pergunta real no momento.
Isxek 22/09/10
Exatamente, mas eu quero a melhor maneira de fazê-lo, mas eu não sabia da extensão, estou verificando agora ...
Tamara Wijsman
O indend facilita o trabalho com pontos de junção, vou usar isso por enquanto e deixarei isso em aberto aguardando uma solução melhor ... Desejo que o código fonte esteja disponível para que eu possa remover o texto que ele adiciona o nome do diretório e para remover as opções que nunca usarei.
Tamara Wijsman
Apenas para adicionar: você provavelmente já os encontrou, mas aqui estão alguns links do CodeProject (com fonte) relacionados aos pontos de junção: codeproject.com/KB/winsdk/junctionpoints.aspx e codeproject.com/KB/vista/ReparsePointID .aspx
Isxek
Parece interessante, talvez eu tenha gastado uma recompensa aqui ou decido dedicar algum tempo à pesquisa e implementação um dia desses ...
Tamara Wijsman
2

Eu apenas uso o MKLINKque está embutido no Windows 7. Você acabará escrevendo arquivos em lote, mas não é difícil de usar.


fonte