이 코드를 사용하여 디버그 디렉토리를 찾습니다.
public string str_directory = Environment.CurrentDirectory.ToString();
"C:\\Users\\Masoud\\Documents\\Visual Studio 2008\\Projects\\MyProj\\MyProj\\bin\\Debug"
아래와 같이 상위 폴더를 어떻게 찾을 수 있습니까?
"C:\\Users\\Masoud\\Documents\\Visual Studio 2008\\Projects\\MyProj\\MyProj"
답변
System.IO.Directory.GetParent()
주어진 디렉토리의 상위 디렉토리를 검색하는 데 사용할 수 있습니다 .
답변
string parent = System.IO.Directory.GetParent(str_directory).FullName;
BOL 참조
답변
..\..
기존 경로에 추가 하면 운영 체제가 상위 상위 폴더를 올바르게 검색합니다.
이 작업을 수행해야합니다.
System.IO.Path.Combine("C:\\Users\\Masoud\\Documents\\Visual Studio 2008\\Projects\\MyProj\\MyProj\\bin\\Debug", @"..\..");
해당 경로를 찾아 보면 상위 디렉토리를 찾아 볼 것입니다.
답변
의 변형이 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:\
답변
‘조부모’디렉토리를 얻으려면 Directory.GetParent ()를 두 번 호출하십시오 .
var gparent = Directory.GetParent(Directory.GetParent(str_directory).ToString());
답변
Directory.GetParent
아마도 더 나은 대답 일 수 있지만 완전성을 위해 string을 취하고 string을 반환하는 다른 메서드가 있습니다 : Path.GetDirectoryName
.
string parent = System.IO.Path.GetDirectoryName(str_directory);
답변
이렇게 :
System.IO.DirectoryInfo myDirectory = new DirectoryInfo(Environment.CurrentDirectory);
string parentDirectory = myDirectory.Parent.FullName;
행운을 빕니다!