Qual é a diferença entre "C: FILE.TXT" e "C: \ FILE.TXT"?

13

Qual é a diferença entre " C:FILE.TXT" e " C:\FILE.TXT"?

Eles são os mesmos?

VOCÊ
fonte

Respostas:

26

C:FILE.TXTrefere-se FILE.TXTno diretório atual da unidadeC:

C:\FILE.TXTrefere-se ao FILE.TXTdiretório raiz da unidade C:( C:\)

Eles não são os mesmos.

Editar: Exemplo de Prompt de Comando:

O Windows lembra um diretório de trabalho atual para cada unidade. Digamos que você está trabalhando no diretório C:\UTILSe então você mudar para dirigir F:e depois para o diretório BINem F::

C: \ UTILS> F:
 F: \> CD BIN
 F: \ BIN>

Neste ponto, o diretório de trabalho atual para C:ainda está C:\UTILSe o diretório de trabalho atual para F:éF:\BIN

Você pode verificar isso com o CDcomando:

F: \ BIN> CD C:
C: \ UTILS

F: \ BIN>

Observe que você não alterou a unidade de trabalho novamente C:usando este comando.

Como você verá nos exemplos de comando a seguir, o uso de uma barra invertida ( \) imediatamente após o nome de uma unidade ( X:) torna o local do arquivo absoluto. A omissão da barra invertida envolve automaticamente o diretório de trabalho atual da unidade.

F: \ BIN> CÓPIA F: PROGRAM.EXE C:     Cópias * F: \ BIN \ PROGRAM.EXE para C: \ UTILS \ PROGRAM.EXE 
F: \ BIN> CÓPIA F: PROGRAMA.EXE C: \    Cópias * F: \ BIN \ PROGRAM.EXE para C: \ PROGRAM.EXE 
F: \ BIN> CÓPIA F: \ PROGRAM.EXE C:    Cópias * F: \ PROGRAM.EXE para C: \ UTILS \ PROGRAM.EXE

F: \ BIN> CÓPIA F: PROGRAM.EXE C: NEW \ NEW_PROG.EXE    Copia * e renomeia
                                                F: \ BIN \ PROGRAM.EXE
                                                para C: \ BIN \ NEW \ NEW_PROG.EXE
 

* 'Cópias' significa 'tentativas de copiar'. Esses comandos falharão se as estruturas de diretório assumidas e os diretórios de trabalho atuais não existirem ou forem alterados por outro processo.

No caso em que o diretório de trabalho é o diretório raiz (por exemplo. C:\) Em seguida, C:PROGRAM.EXEe C:\PROGRAM.EXEapontam para o mesmo local, mas eles foram chegou por diferentes métodos.

Mike Fitzpatrick
fonte
2
Na verdade, eles podem ser os mesmos se o diretório atual de C: for a raiz.
Synetech
3
@Synetech; Só porque eles podem se referir ao mesmo lugar não significa que eles são a mesma coisa
Phoshi
Observe que o Windows NT não rastreia mais os "diretórios atuais" por unidade; agora esta sintaxe é útil apenas no cmd.exeshell. Em outros programas, se uma unidade diferente da atual for fornecida, essas especificações de caminho sempre serão relativas à raiz da unidade.
user1686
@ Phoshi, sim, eles são os mesmos em certos contextos. É como dizer que int xé o mesmo que int y; eles não são ===, mas podem ser == se ambos tiverem o mesmo valor. @ grrawity, é claro que os aplicativos do Windows (Win32, não apenas o NT) não têm cwd por unidade, pois isso não significa nada nesse contexto. Independentemente disso, não é apenas cmd; todos os aplicativos de console possuem .
Synetech
@ Mike, na verdade, depois de ler a resposta, ainda não sei dizer a diferença. você poderia elaborá-lo para um usuário burro?
Pacerier 29/07