O mesmo caminho no Windows e no Linux? [duplicado]

1

NOTA: eu deveria ter incluído isso com antecedência. Estou muito ciente de que esta é uma ideia muito ruim, que faz pouco sentido, etc. Mas, às vezes, há situações fora de nosso controle que nos levam a encontrar soluções que não fazem sentido.

Temos um requisito para que um arquivo de propriedades seja colocado em janelas e linux sem alterações e contenha caminhos absolutos. Eu sei que o "/ some / path" básico funciona em ambos, mas no Windows, esse é um caminho baseado na letra da unidade atual.

Existe alguma maneira de especificar um caminho de tal forma que ele possa passar por letras de unidade no Windows?

Em outras palavras, se "/ D: / some / path" funcionasse no Windows (o que não funciona), esse caminho poderia ser criado no Linux. Existe algo parecido que poderia funcionar?

    
por mentics 24.06.2011 / 00:22

4 respostas

1

Isso realmente não funcionará. Se você quiser um caminho absoluto no Windows, será necessária a letra da unidade. O Linux não usa letras, apenas usa montagens em "/". Um caminho relativo da pasta do aplicativo é uma ideia muito melhor.

    
por 24.06.2011 / 00:28
1

Por que não ter arquivos de propriedade separados para cada sistema operacional de destino? Eu suponho que você tem que empacotar seu aplicativo de forma diferente (MSI vs RPM ou similar), então qual é o dano em arquivos separados (que podem ser gerados a partir de um único arquivo "base" para evitar ficar fora de sincronia). >

É uma idéia muito melhor seguir as convenções do sistema operacional que você está almejando para configuração, criação de log, etc. O Linux tem o Linux Standard Base (LSB) e o Padrão de Hierarquia do Sistema de Arquivos (FHS)

Para o Windows, parece haver algo semelhante no MSDN: link

    
por 24.06.2011 / 00:37
1

Se possível, permita que os caminhos no arquivo sejam relativos, por exemplo ao diretório de instalação do programa ou a um diretório semelhante. Como alternativa, se for seu próprio código que está lendo esse arquivo, você poderá permitir variáveis de ambiente nos caminhos, por exemplo, %código%. Seu programa poderia organizar o $INSTALL_DIR/lib/foo para o diretório apropriado antes de ler este arquivo, ou poderia simplesmente ser um token mágico que é substituído pelo diretório de instalação e não por uma variável de ambiente real.

    
por 24.06.2011 / 01:12
0

Bem, isso realmente depende da natureza do seu software. Aqui estão algumas sugestões.

  1. Torne o caminho configurável e armazene em um arquivo de propriedades
  2. Use o cygwin e armazene tudo local para o diretório cygwin
  3. Use as variáveis de ambiente.
  4. Escreva seu próprio sistema de arquivos.
  5. Envie ao seu interessado um peixe embrulhado em um jornal e, educadamente, sugira que ele reconsidere esse requisito bobo.

Eu quero dizer isso tudo que eu realmente consigo pensar.

    
por 24.06.2011 / 00:54

Tags