C #에서 전화를 설치면 어떻게됩니까?
이 코드를 사용하여 디버그를 찾습니다.
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());
이렇게 :
System.IO.DirectoryInfo myDirectory = new DirectoryInfo(Environment.CurrentDirectory);
string parentDirectory = myDirectory.Parent.FullName;
행운을 빕니다!
Directory.GetParent
더 나은 대답 일 수 있습니다.Path.GetDirectoryName
string parent = System.IO.Path.GetDirectoryName(str_directory);
당신은 조사 할 수 있습니다 . 특성.DirectoryInfo
Parent
\ 여기서 오는 문제를 피 예상 다음과 같이 호출하십시오.
string ParentFolder = Directory.GetParent( folder.Trim('\\')).FullName;
그렇게 시도 할 가능성이있다. Environment.CurrentDirectory는 실행 가능한 디렉토리의 경로를 제공합니다. 이것은 .exe 파일의 위치에 관계없이 일관됩니다. 역 상대 위치에있는 가정되는 파일에 액세스하면 보호됩니다.
액세스하려는 리소스를 로컬 위치로 이동하는 것이 좋습니다. 시스템 디렉토리 (예 : AppData)
이것은 가장 일반적인 방법입니다. 정확히 무엇을하는지에 따라 달라집니다. (설명하기 위해 위해 예는 요청한 마지막 10 개의 아래 제거하지만 필요를 유발하는 비즈니스 규칙이있는 경우 특정 위치를 라우팅면 다른 위치를 찾아 수정하지 말고 디렉토리 위치를 검색하는 것입니다.)
// remove last 10 characters from a string
str_directory = str_directory.Substring(0,str_directory.Length-10);
어느 누구도 교차 형식으로 작동하는 솔루션을 제공하지 않습니다. 나는 그것이 제안하지 않았다는 것을 제안하고 대부분의 솔루션 (이 글을 게시 할 때)이 오류를 제공하는 Linux 환경에서 작업하고 있습니다.
하드 코딩 경로 구분 기호 (및 기타 사항)는 Windows 시스템 이외의 모든 항목에서 오류를 발생 수정합니다.
내 원래 솔루션에서 다음을 사용했습니다.
char filesep = Path.DirectorySeparatorChar;
string datapath = $"..{filesep}..{filesep}";
그러나 여기에 몇 가지 답변을 본 후 다음과 같이 조정했습니다.
string datapath = Directory.GetParent(Directory.GetParent(Directory.GetCurrentDirectory()).FullName).FullName;
IO.Path.GetFullPath(@"..\..")
bin\Debug\
프로젝트 속성-> 빌드-> 출력 경로에서 " " 를 지우면 다음을 사용할 수 있습니다.AppDomain.CurrentDomain.BaseDirectory
솔루션을 얻으려면이를 시도하십시오
string directory = System.IO.Directory.GetParent(System.IO.Directory.GetParent(Environment.CurrentDirectory).ToString()).ToString();
참고 URL : https://stackoverflow.com/questions/6875904/how-do-i-find-the-parent-directory-in-c
'ProgramingTip' 카테고리의 다른 글
SQL Server 인스턴스에 대한 데이터 디렉터리는 어떻게 찾습니까? (0) | 2020.11.09 |
---|---|
너비가 100 %이고 열 크기가 같은 테이블입니다. (0) | 2020.11.09 |
부트 버튼 라디오 버튼 토글 문제 (0) | 2020.11.09 |
T-SQL에서 비트 필드를 뒤집는 방법은 무엇입니까? (0) | 2020.11.09 |
"Uncaught SyntaxError : Unexpected token {" (0) | 2020.11.09 |