ฉันพบว่าตัวแปรSystem.IO.Path.Combine(myPath, "..")ที่ง่ายและน่าเชื่อถือที่สุด ยิ่งไปกว่านั้นหากสิ่งที่ northben พูดเป็นความจริง GetParent นั้นต้องการการเรียกพิเศษหากมีเครื่องหมายทับ สำหรับฉันแล้วมันไม่น่าเชื่อถือ
Path.Combine ทำให้แน่ใจว่าคุณจะไม่ผิดพลาดด้วยเครื่องหมายทับ
..ทำงานเหมือนกับที่อื่น ๆ ใน Windows คุณสามารถเพิ่มไฟล์\..ในเส้นทางใน cmd หรือ explorer และมันจะทำงานตามที่ฉันอธิบายไว้ด้านล่าง
..พฤติกรรมพื้นฐานบางประการ:
- หากมีชื่อไฟล์
..จะตัดออก:
Path.Combine(@"D:\Grandparent\Parent\Child.txt", "..") => D:\Grandparent\Parent\
- หากพา ธ เป็นไดเร็กทอรี
..จะเลื่อนระดับขึ้น:
Path.Combine(@"D:\Grandparent\Parent\", "..") => D:\Grandparent\
..\.. ปฏิบัติตามกฎเดียวกันสองครั้งติดต่อกัน:
Path.Combine(@"D:\Grandparent\Parent\Child.txt", @"..\..")=> D:\Grandparent\
Path.Combine(@"D:\Grandparent\Parent\", @"..\..")=>D:\
- และสิ่งนี้มีผลเหมือนกัน:
Path.Combine(@"D:\Grandparent\Parent\Child.txt", "..", "..")=> D:\Grandparent\
Path.Combine(@"D:\Grandparent\Parent\", "..", "..")=>D:\