Meu problema é que não consigo dar o nome da minha pasta ou arquivo com caracteres especiais como \ / : * ? " < > | em sistemas operacionais baseados em Windows Isso é muito importante para mim, dar o nome do arquivo/pasta que contém esse tipo de caracteres.
Já pesquiso e indico tantos sites para esses problemas, mas todos estão sem esperança. Também li a página de suporte da Microsoft, eles sugerem o uso de outros caracteres. Este é o seu link,https://support.microsoft.com/en-us/kb/177506
Eu já tentei o botão Alt + número do código ASCII deste tipo de caracteres especiais, a partir da tecla numpad, apenas por exemplo renomear arquivo/pasta e pressionar Alt+60 (para <caracteres) Ainda está dando a mensagem de que, Um nome de arquivo não pode conter nenhum dos seguintes personagens: \ / : * ? " < > |
Sugira-me uma solução adequada para que eu possa dar o nome do meu arquivo/pasta com este tipo de caracteres especiais.
Responder1
Isso é muito importante para mim, nomear o arquivo/pasta que contém esses caracteres.
Pode ser importante para você, mas você terá que deixar isso de lado e encontrar uma maneira diferente de resolver seu problema.
Esses caracteres não são permitidos pelas chamadas de função do sistema operacional Windows que tratam de nomes de arquivos.
Eles especificamente não são permitidos porque têm outro uso:
- \- Reservado para uso como separador de caminho eescaparpersonagem
- /- Reservado para uso como separador de caminho
- :- Reservado para uso como delimitador de nome de unidade
- *e ?- Reservado para uso comocuringapersonagens
- "- Reservado para usocitarnomes contendo espaços
- <, >e |- Reservado para uso como comandoredirecionamentooperadores
Você pode, é claro, criar arquivos com nomes contendo esses caracteres usando um sistema operacional diferente (desde que esse sistema operacional possa ler/gravar um sistema de arquivos do Windows).
No entanto, você não poderá fazer nada com esses arquivos usando nenhum programa do Windows e eles não entenderão os nomes dos arquivos e gerarão erros.
Nomeando arquivos, caminhos e namespaces
Convenções de nomenclatura
As seguintes regras fundamentais permitem que os aplicativos criem e processem nomes válidos para arquivos e diretórios, independentemente do sistema de arquivos:
...
Use qualquer caractere na página de código atual para um nome, incluindo caracteres Unicode e caracteres no conjunto de caracteres estendido (128–255), exceto o seguinte:
Os seguintes caracteres reservados:
< (less than) > (greater than) : (colon) " (double quote) / (forward slash) \ (backslash) | (vertical bar or pipe) ? (question mark) * (asterisk)
- Valor inteiro zero, às vezes chamado de caractere ASCII NUL.
- Caracteres cujas representações inteiras estão no intervalo de 1 a 31, exceto para fluxos de dados alternativos onde esses caracteres são permitidos. Para obter mais informações sobre fluxos de arquivos, consulte Fluxos de arquivos.
- Qualquer outro caractere que o sistema de arquivos de destino não permita.
FonteNomeando arquivos, caminhos e namespaces
Mas eu realmente quero fazer isso de qualquer maneira.
InstalarCygwinE use touch
.
Não testei todas as possibilidades, mas o seguinte funciona:
touch :
touch \|
touch \"
touch \>
Exemplo de saída:
DavidPostill@Hal /f/test/impossible
$ ll
total 0
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:03 '"'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 :
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 '|'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:07 '>'
Como você pode ver, eles não podem ser usados no Windows:
F:\test\impossible>dir
Volume in drive F is Expansion
Volume Serial Number is 3656-BB63
Directory of F:\test\impossible
10/08/2016 21:07 <DIR> .
10/08/2016 21:07 <DIR> ..
10/08/2016 21:03 0
10/08/2016 21:02 0
10/08/2016 21:07 0
10/08/2016 21:02 0
4 File(s) 0 bytes
2 Dir(s) 1,772,601,536,512 bytes free
Responder2
Crie seu próprio conjunto de fontes. Substitua alguns dos caracteres que você não usa pelas imagens dos caracteres reservados.
Responder3
No Windows, você não pode criar arquivos com esses caracteres. Não há solução, esses caracteres são proibidos pela API Win32.
Win32 é um subconjunto do namespace POSIX e não diferencia maiúsculas de minúsculas. Ele usa todos os caracteres Unicode, exceto: '"' '*' '/' ':' '<' '>' '?' '\' '|' NB Os nomes não podem terminar com ponto '.' ou espaço ''.
--http://dubeyko.com/development/FileSystems/NTFS/ntfsdoc.pdf