Como criar um disco virtual com um sistema de arquivos que faz distinção entre maiúsculas e minúsculas no Windows 7?

5

Eu não me importo qual sistema de arquivos exatamente será, eu só preciso dos caminhos de arquivo para trabalhar de uma maneira sensível a maiúsculas e minúsculas.

Talvez um comportamento semelhante a um compartilhamento de samba na caixa do Linux que tenha sensibilidade a maiúsculas e minúsculas ativada. Isso seria perfeito, exceto que eu preciso que o disco seja armazenado localmente.

Existem drivers / ferramentas para isso?

Já experimentei alguns drivers ext2 para Windows que não funcionam com esse objetivo :( ( link e link )

    
por Ivarpoiss 09.09.2011 / 18:36

3 respostas

3

A resposta simples é não. A resposta longa é ...

O NTFS armazena nomes de arquivos de uma maneira sensível a maiúsculas e minúsculas (o NTFS pode ter README.txt e readme.txt no mesmo diretório) e até mesmo o gerenciador de arquivos do Windows pode gerenciar internamente solicitações com distinção entre maiúsculas e minúsculas pelos nomes de arquivos NtOpenFile / NtCreateFile .

Infelizmente para você, a função Win32 CreateFile (usada em todos os lugares, inclusive por fopen) chamará internamente NtCreateFile usando o sinalizador OBJ_CASE_INSENSITIVE, o que significa que todos os aplicativos que usam CreateFile verão o sistema de arquivos que faz distinção entre maiúsculas e minúsculas sem distinção entre maiúsculas e minúsculas. Na prática, isso significa que todos os aplicativos verão seu sistema de arquivos sem distinção entre maiúsculas e minúsculas, independentemente de seu sistema de arquivos ser realmente sensível a maiúsculas e minúsculas.

A única maneira que posso pensar para você praticamente forçar a diferenciação de maiúsculas e minúsculas é escrever um driver de filtro que removerá o sinalizador OBJ_CASE_INSENSITIVE das solicitações de syscall recebidas que permitirão NTFS, EXT2 ou qualquer sistema de arquivos interno que você tiver que se comportar em sua maneira padrão, sensível a maiúsculas e minúsculas.

    
por 23.02.2012 / 21:57
1

De dentro do Windows, isso é possível, mas você precisa ser capaz de escrever C.

O NTFS realmente armazena nomes como diferenciando maiúsculas de minúsculas (para suportar o subsistema POSIX). No entanto, o NTFS não suporta realmente as funções que diferenciam maiúsculas de minúsculas. Considerando que o NT foi originalmente escrito como um concorrente direto do UNIX, isso não é uma surpresa.

link

link

link

    
por 10.09.2011 / 02:27
0

Parece que a única maneira é instalar um Linux virtualizado e compartilhar a unidade da VM com o Windows.

Eu tenho procurado na Internet pela mesma solução, principalmente para fazer o checkout de um repositório GIT de um sistema Linux que tem arquivos que diferem apenas no caso (não pregue porque eles estão lá - está além do meu controle) . Mas parece que não há uma maneira relativamente simples de fazer isso, a não ser escrever seu próprio subsistema ou integrar-se profundamente ao subsistema Interix (agora serviços Unix).

    
por 07.02.2012 / 06:36