อะไรคือความแตกต่างระหว่าง“ C: FILE.TXT” และ“ C: \ FILE.TXT”?


13

ความแตกต่างระหว่าง " C:FILE.TXT" และ " C:\FILE.TXT" คืออะไร?

พวกเขาเหมือนกันหรือไม่

คำตอบ:


26

C:FILE.TXTอ้างถึงFILE.TXTในไดเรกทอรีปัจจุบันของไดรฟ์C:

C:\FILE.TXTอ้างถึงFILE.TXTในไดเรกทอรีรากของไดรฟ์C:( C:\)

พวกเขาไม่เหมือนกัน

แก้ไข: ตัวอย่างพรอมต์คำสั่ง:

Windows จดจำไดเรกทอรีการทำงานปัจจุบันสำหรับแต่ละไดรฟ์ สมมติว่าคุณกำลังทำงานในไดเรกทอรีC:\UTILSและจากนั้นคุณเปลี่ยนเป็นไดรฟ์F:แล้วไปที่ไดเรกทอรีBINในF::

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

ณ จุดนี้ไดเร็กทอรีการทำงานปัจจุบันC:ยังคงอยู่C:\UTILSและไดเร็กทอรีการทำงานปัจจุบันสำหรับF:คือF:\BIN

คุณสามารถยืนยันสิ่งนี้ได้ด้วยCDคำสั่ง:

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

F: \ bin>

โปรดทราบว่าคุณไม่ได้เปลี่ยนไดรฟ์ทำงานกลับไปเป็นC:โดยใช้คำสั่งนี้

ดังที่คุณจะเห็นจากตัวอย่างคำสั่งต่อไปนี้การใช้แบ็กสแลช ( \) ทันทีหลังจากชื่อไดรฟ์ ( X:) ทำให้ตำแหน่งของไฟล์สมบูรณ์ การทำเครื่องหมายแบ็กสแลชโดยอัตโนมัติเกี่ยวข้องกับไดเรกทอรีการทำงานปัจจุบันของไดรฟ์

F: \ BIN>คัดลอก F: PROGRAM.EXE C:     คัดลอก * F: \ BIN \ PROGRAM.EXE ถึง C: \ UTILS \ PROGRAM.EXE 
F: \ BIN>คัดลอก F: PROGRAM.EXE C: \    คัดลอก * F: \ BIN \ PROGRAM.EXE ถึง C: \ PROGRAM.EXE 
F: \ BIN>คัดลอก F: \ PROGRAM.EXE C:    คัดลอก * F: \ PROGRAM.EXE ถึง C: \ UTILS \ PROGRAM.EXE

F: \ BIN>คัดลอก F: PROGRAM.EXE C: NEW \ NEW_PROG.EXE    สำเนา * และเปลี่ยนชื่อ
                                                F: \ bin \ PROGRAM.EXE
                                                ถึง C: \ BIN \ NEW \ NEW_PROG.EXE
 

* 'สำเนา' หมายถึง 'ความพยายามในการคัดลอก' คำสั่งเหล่านี้จะล้มเหลวหากโครงสร้างไดเร็กทอรีสันนิษฐานและไดเร็กทอรีการทำงานปัจจุบันไม่มีอยู่หรือถูกเปลี่ยนแปลงโดยกระบวนการอื่น

ในกรณีที่ไดเร็กตอรี่ทำงานนั้นเป็นไดเร็กตอรี่รูท (เช่น. C:\) C:PROGRAM.EXEและC:\PROGRAM.EXEชี้ไปที่ตำแหน่งเดียวกัน, แต่มันมาถึงด้วยวิธีการต่าง ๆ .


2
จริงๆแล้วพวกเขาสามารถเหมือนกันถ้าไดเรกทอรีปัจจุบันของ C: เป็นรูท
Synetech

3
@Synetech; เพียงเพราะพวกเขาสามารถอ้างถึงสถานที่เดียวกันไม่ได้หมายความว่าพวกเขาเป็นสิ่งเดียวกัน
Phoshi

โปรดทราบว่า Windows NT จะไม่ติดตาม "ไดเรคทอรี่ปัจจุบัน" ต่อไดรฟ์อีกต่อไป ตอนนี้ไวยากรณ์นี้มีประโยชน์เฉพาะในcmd.exeเชลล์ ในโปรแกรมอื่นหากมีการกำหนดไดรฟ์ที่แตกต่างจากปัจจุบันข้อมูลจำเพาะของพา ธ ดังกล่าวจะสัมพันธ์กับรูทของไดรฟ์นั้นเสมอ
user1686

@Phoshi ใช่พวกเขาเหมือนกันในบางบริบท มันเหมือนกับการบอกว่าint xเป็นเช่นเดียวกับint y; พวกเขาไม่ใช่ === แต่สามารถเป็น == หากทั้งคู่มีค่าเท่ากัน @grawity แน่นอนว่าแอพ windows (Win32 ไม่ใช่แค่ NT) ไม่มี cwd ต่อไดรฟ์เนื่องจากไม่มีความหมายในบริบทนั้น ไม่ว่าจะเป็นอะไรมันก็แค่ cmd; ปพลิเคชันทั้งหมดคอนโซลมีมัน
Synetech

@ ไมค์จริงหลังจากอ่านคำตอบฉันยังไม่สามารถบอกความแตกต่าง คุณสามารถอธิบายรายละเอียดให้กับผู้ใช้ที่โง่ได้หรือไม่?
Pacerier
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.