728x90
반응형
1
2
3
4
5
6
7
8
9
10
11
12
|
public static IEnumerable<string> GetFiles(string path, string searchPatterns, int hour5, SearchOption searchOption = SearchOption.AllDirectories)
{
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(path);
var dirs = (from file in dir.EnumerateFiles(searchPatterns, searchOption)
where file.LastAccessTime >= DateTime.Now.AddHours(hour5)
select file.FullName + "/" + file.Name).Distinct().Take(500);
return dirs;
// where file.LastAccessTime >= DateTime.Now.AddHours(hour5)
// orderby file.CreationTime ascending
}
|
cs |
위와같은 함수를 하나 만들어놓고나서
아래와 같이 폴더를 지정 및 파일의 찾는 형태를 함수로 넘겨준다.
파라미터는 필요에따라 추가로 만들어 넣으면 되고 나는 시간값을 하나 더 넣었다
시간 g_hour은 -10으로 해서, 마지막 쓰여진 시간이 지금으로부터 10시간 전의 시간보다 이후의 파일만
필터하게 했다.
where과 select 사이에 orerby를 넣어서, 가져올 파일이 몇개 안될때 사용하고,
마지막에 .Take(500) 이렇게 해서 찾은 파일중에 500개만 가져온다.
1
2
3
|
string folder1 = @"c:\StockKW\__StockLogData";
IEnumerable<string> m_oEnum = Enumerable.Empty<string>();
m_oEnum = GetFiles(folder1, "sday_*.csv", g_hour);
|
cs |
가졍온 파일목록은 아래와 같이
foreach 문으로 해서 하나씩 처리할수 있는데,
목록에 가져올때는 값을 묶어서 하나로 가져오기때문에 묶을때 내가 원하는거 아무거나, 위에서는 /로 했음.
분리자를 넣어서 가져오고, split로 분리해서 쓰면된다.
1
2
3
4
5
|
foreach (string f1 in m_oEnum)
{
//세부종목 파일일 때만
sn1 = f1.Split('/')[1];
sn2 = sn1.Split('_')[1];
|
cs |
728x90
반응형
'다양한 실전소스코드 > WINFORM(C#)' 카테고리의 다른 글
[Solved] C# 3항 연산자 사용방법 (삼항 연산자) (0) | 2021.06.28 |
---|---|
C# String Contains 활용법 (0) | 2021.06.28 |
[Solved] C# Split 사용해서 문자를 나눠서 배열로. (0) | 2021.06.28 |
[Solved] C# CSV Read Fast (CSV 빠르게 읽어오기) (0) | 2021.06.28 |
[Solved] C# datatable 다루기_값 찾기 등 (0) | 2021.05.14 |
댓글