IT story

C #에서 현재 디렉토리 이름의 마지막 부분을 가져옵니다.

hot-time 2020. 6. 24. 07:28
반응형

C #에서 현재 디렉토리 이름의 마지막 부분을 가져옵니다.


예를 들어에서 /Users/smcho/filegen_from_directory/AIRPassthrough같이 현재 디렉토리의 마지막 부분 을 가져와야 AIRPassthrough합니다.

파이썬 으로이 코드로 얻을 수 있습니다.

import os.path

path = "/Users/smcho/filegen_from_directory/AIRPassthrough"
print os.path.split(path)[-1]

또는

print os.path.basename(path)

C #으로 같은 작업을 어떻게 수행 할 수 있습니까?

추가

응답자의 도움을 받아 필요한 것을 찾았습니다.

using System.Linq;
string fullPath = Path.GetFullPath(fullPath).TrimEnd(Path.DirectorySeparatorChar);
string projectName  = fullPath.Split(Path.DirectorySeparatorChar).Last();

또는

string fullPath = Path.GetFullPath(fullPath).TrimEnd(Path.DirectorySeparatorChar);
string projectName = Path.GetFileName(fullPath);

찾고 있습니다 Path.GetFileName.
경로가로 끝나는 경우 작동하지 않습니다 \.


시도해 볼 수 있습니다 :

var path = @"/Users/smcho/filegen_from_directory/AIRPassthrough/";
var dirName = new DirectoryInfo(path).Name;

폴더 이름을 얻는 가장 쉬운 방법은 경로를 사용하여 DirectoryInfo 인스턴스를 초기화하는 것입니다.

string path = "/Users/smcho/filegen_from_directory/AIRPassthrough";
string result = new DirectoryInfo(path).Name;

경로가 디렉토리 분리기의 유무에 관계없이 종료되거나 정방향 또는 역방향 분리기가 사용되는 경우에도 동일하게 작동합니다.


글쎄, 당신의 질문 제목 정확하게 대답하기 위해 :-)

var lastPartOfCurrentDirectoryName = 
   Path.GetFileName(Environment.CurrentDirectory);

이것은 당신이 가진 것에 따라 약간 다른 대답입니다. 파일 목록이 있고 파일이있는 마지막 디렉토리의 이름을 가져와야하는 경우 다음을 수행 할 수 있습니다.

string path = "/attachments/1828_clientid/2938_parentid/somefiles.docx";
string result = new DirectoryInfo(path).Parent.Name;

"2938_parentid"를 반환합니다


대신 호출을 나누기 위해 '/'를 사용하면 Path.DirectorySeparatorChar다음 을 사용하는 것이 좋습니다 .

이렇게 :

path.split(Path.DirectorySeparatorChar).Last() 

var lastFolderName = Path.GetFileName(
    path.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar));

경로에 슬래시 구분 기호 나 백 슬래시 구분 기호가 포함 된 경우 작동합니다.


이 시도:

String newString = "";
Sting oldString = "/Users/smcho/filegen_from_directory/AIRPassthrough";

int indexOfLastSlash = oldString.LastIndexOf('/', 0, oldString.length());

newString = oldString.subString(indexOfLastSlash, oldString.length());

코드가 꺼져있을 수 있지만 (테스트하지는 않았지만) 아이디어는 효과가 있습니다.


이것은 나와 완벽하게 작동합니다 :)

Path.GetFileName(path.TrimEnd('\\')

아래 코드를 시도해보십시오 :

Path.GetFileName(userpath)

참고 URL : https://stackoverflow.com/questions/6018293/get-the-last-part-of-current-directory-name-in-c-sharp

반응형