Não me importa qual sistema de arquivos será exatamente, só preciso que os caminhos dos arquivos funcionem com distinção entre maiúsculas e minúsculas.
Talvez um comportamento semelhante a um compartilhamento de samba na caixa Linux com distinção entre maiúsculas e minúsculas ativada. Isso seria perfeito, exceto que preciso que o disco seja armazenado localmente.
Existem drivers/ferramentas para isso?
Já experimentei alguns drivers ext2 para Windows que não funcionaram para essa finalidade :( (http://www.fs-driver.org/ehttp://www.fs-driver.org/)
Responder1
A resposta simples é não. A resposta longa é...
O NTFS armazena nomes de arquivos diferenciando maiúsculas de 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 que diferenciam maiúsculas de minúsculas para nomes de arquivos por meio de syscalls 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 seu sistema de arquivos com 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 realmente diferenciar maiúsculas de minúsculas.
A única maneira que consigo pensar para você praticamente forçar a distinção entre maiúsculas e minúsculas é escrever um driver de filtro que removerá o sinalizador OBJ_CASE_INSENSITIVE das solicitações de syscall recebidas, o que permitirá NTFS, EXT2 ou qualquer sistema de arquivos interno que você tenha que se comportar em seu padrão , diferenciando maiúsculas de minúsculas.
Responder2
De dentro do Windows, isso é possível, mas você precisa saber escrever C.
Na verdade, o NTFS armazena nomes com distinção entre maiúsculas e minúsculas(para suportar o subsistema POSIX). No entanto, o NTFS não oferece suporte a 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 é nenhuma surpresa.
Responder3
Parece que a única maneira é instalar um Linux virtualizado e compartilhar a unidade da VM com o Windows.
Tenho procurado na Internet a mesma solução, principalmente para verificar um repositório GIT de um sistema Linux que possui arquivos que diferem apenas no caso (não pregue por que eles estão lá - está além do meu controle). Mas parece que não há uma maneira relativamente simples de fazer isso, exceto escrever seu próprio subsistema ou integrar-se profundamente ao subsistema Interix (agora serviços Unix).