반응형
MediaUtility 클래스
특정 폴더에 접근하여 이미지 파일이나 동영상 파일을 가져와 사용하는 경우가 많아서 따로 쉽게 클래스로 구현하여 유틸리티처럼 사용하기 위해 만들었습니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
namespace File.Utility
{
public class MediaUtility
{
#region Property
/// <summary>
/// 특정 폴더의 미디어 파일들을 처리하기 위한 클래스
/// </summary>
#endregion
#region Public Method
//이미지 파일
public static List<string> GetImageFiles(string directoryPath)
{
List<string> imageFileList = new List<string>();
foreach (string fileName in Directory.GetFiles(directoryPath))
{
if (Regex.IsMatch(fileName, @".jpg|.png|.bmp|.JPG|.PNG|.BMP|.JPEG|.jpeg$"))
{
imageFileList.Add(fileName);
}
}
return imageFileList;
}
//동영상 파일
public static List<string> GetVideoFiles(string directoryPath)
{
List<string> videoFileList = new List<string>();
foreach (string fileName in Directory.GetFiles(directoryPath))
{
if (Regex.IsMatch(fileName, @".avi|.mkv|.mp4|.AVI|.MP4|.MKV|.MPG|.mpg$"))
{
videoFileList.Add(fileName);
}
}
return videoFileList;
}
//모든 파일
public static List<string> GetAllFiles(string directoryPath)
{
List<string> fileList = new List<string>();
foreach (string fileName in Directory.GetFiles(directoryPath))
{
fileList.Add(fileName);
}
return fileList;
}
//이름순으로 정렬
public static List<string> SortByName(List<string> fileList)
{
var sortList = new List<String>();
if (!fileList.IsEmpty())
{
sortList.AddRange(fileList);
sortList.Sort((a, b) => a.CompareTo(b));
}
return sortList;
}
public static bool IsImageFile(string fileName)
{
if (Regex.IsMatch(fileName, @".jpg|.png|.bmp|.JPG|.PNG|.BMP|.JPEG|.jpeg$"))
return true;
else
return false;
}
#endregion
}
}
MediaUtility 사용법
public List<string> MediaFileList { get; set; }
MediaFileList = MediaUtility.SortByName(MediaUtility.GetAllFiles(Constant.MediaFilesURL));
반응형
'프로그래밍 > C#' 카테고리의 다른 글
[C#] regsvr32.exe를 이용하여 DLL, OCX 등록 및 삭제하기 (0) | 2021.11.03 |
---|---|
[C#] Visual Studio에서 현재 컴퓨터의 Window 버전 확인하기 (0) | 2021.10.25 |
[C#] 레지스트리 사용법 (읽기, 쓰기, 삭제, 64bit or 32bit) (0) | 2021.09.06 |
[C#] 파일 생성하기 (0) | 2021.07.25 |
댓글