공학속으로/C#

[c#] 파일명, 폴더 경로 추출, 합치기, 찾기

더월드 2020. 4. 3.

▶ 현재 경로 확인

string path = System.Reflection.Assembly.GetExecutingAssembly().Location;
path = System.IO.Path.GetDirectoryName(path);

 

▶ 파일명을 추출할때 

// 파일 명을 추출합니다.

string filepath = @"D:\다운로드\IMAGE\test.png";

Console.WriteLine(Path.GetFileName(filepath));

결과 : “test.png”

 

  파일의 확장자를 가져오고 싶을 때

// . 을 포함한 확장자를 가져오고 싶을때

string filepath = @"D:\다운로드\IMAGE\test.png";

Console.WriteLine(Path.GetExtension(filepath));

결과 : “.mp3”

 

 

  파일의 확장자를 제외한 파일명을 가져오고 싶을 때

// 확장자가 없는 파일명을 가져오고 싶을때

string filepath = @"D:\다운로드\IMAGE\test.png";

Console.WriteLine(Path.GetFileNameWithoutExtension(filepath));

결과 : “test”

 

 

  파일을 제외한 경로명만 가져오고 싶을때

 

// 파일을 제외한 경로명만 가져올때

string filepath = @"D:\다운로드\IMAGE\test.png";

Console.WriteLine(Path.GetDirectoryName(filepath));

결과 : “D:\다운로드\IMAGE”

 

  파일과 경로를 합치고 싶을 때

- 파일과 경로를 분리해 놓고 다시 합치고 싶을 때 Path.Combine() 함수를 사용하시면 됩니다. 문자열을 합쳐도 되겠지만 Combine 을 사용하면 합칠 때 경로의 구분자인 역슬레쉬를 안넣어도 자동으로 알아서 추가해 줍니다.

// 파일을 제외한 경로명만 가져올때

string filepath = @"D:\다운로드\IMAGE\test.png";

Console.WriteLine(Path.Combine("D:\\다운로드\\IMAGE", "test.png"));

Console.WriteLine(Path.Combine("D:\\다운로드\\IMAGE\\", "test.png"));

결과 : “D:\다운로드\IMAGE\test.png”

      “D:\다운로드\IMAGE\test.png”

 

▶ 경로 합치기

string source_path =@"C:\Temp"
string target_path = Path.Combine(source_path, @"test.csv");

>> target_path = C:\Temp\test.csv

 

▶ 디렉토리(서브 폴더 포함) 내 CSV 파일들 목록 출력

string[] csvFiles = Directory.GetFiles(directoryPath, "*.csv", SearchOption.AllDirectories);

// csv 파일 목록 출력
foreach (var csvFile in csvFiles)
{
    print(csvFile);
}

 

▶ 파일 존재 여부 확인

//-------------------------------------
// 파일 존재 여부 확인
//-------------------------------------
if (File.Exists(@"C:\Temp\test.csv"))
{
    // 파일이 존재한다면
}

 

▶ string 값이 Null  체크

//-------------------------------------
// string 값이 널이 아니라면
//-------------------------------------
if (!string.IsNullOrEmpty(str_test))
{
    // Null 이면 true
    // 아니면 false
}

 

 

  상위 폴더 구하기

// 상위 폴더?
string link_list = @"c:\test\Users\Administrator\Link";
string parentFolder = Path.GetDirectoryName(link_list);

Console.WriteLine(String.Format("parentFolder: {0}", parentFolder));

>>> parentFolder: c:\test\Users\Administrator

 

   폴더 경로에 특정 문자열이 포함 여부 확인

// 
string link_list = @"c:\test\Users\Administrator\Link";
bool containsSearchString = parentFolder.Contains("Administrator");

Console.WriteLine(String.Format("containsSearchString: {0}", containsSearchString));

>>> containsSearchString: true

댓글

💲 추천 글