본문 바로가기
IT창고/C#

디렉토리 안에 있는 모든 파일의 시간을 일괄적으로 바꿔 주는 프로그램

by 창구창고 2007. 4. 19.

📑 목차

    반응형

    using System;
    using System.IO;
    using System.Collections;
    using System.Collections.Generic;
    using System.Text;

    namespace RenameC
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.Title = "mint's .NET Program";

                #region 변수선언
               
                string FILE_NAME;
               
                #endregion

                #region 인자값 받는 부분
                Console.WriteLine("날짜 입력 시작");
                Console.WriteLine("년도 입력: ");
                Console.Write(">> ");
                string y = Console.ReadLine();

                Console.WriteLine("달도 입력: ");
                Console.Write(">> ");
                string m = Console.ReadLine();

                Console.WriteLine("일도 입력: ");
                Console.Write(">> ");
                string d = Console.ReadLine();

                Console.WriteLine("시간도 입력: ");
                Console.Write(">> ");
                string h = Console.ReadLine();

                Console.WriteLine("분도 입력: ");
                Console.Write(">> ");
                string min = Console.ReadLine();

                Console.WriteLine("초도 입력: ");
                Console.Write(">> ");
                string s = Console.ReadLine();


                int nY = Convert.ToInt32(y);
                int nM = Convert.ToInt32(m);
                int nD = Convert.ToInt32(d);
                int nH = Convert.ToInt32(h);
                int nMin = Convert.ToInt32(min);
                int nS = Convert.ToInt32(s);
                #endregion


                string FILE_PATH;
               
                //파일의 path 잡아줌
                FILE_PATH = "..\\";

                Console.WriteLine(FILE_PATH);

                //디렉토리에 정보를 보기 위해 추가한 코드
                DirectoryInfo DirInfo = new DirectoryInfo(FILE_PATH);

                //디렉토리에 있는 모든 파일들을 배열에 넣기
                FileInfo[] ArrFileName = DirInfo.GetFiles();
               

                int TimeCnt = 0;
                string DATE_MODIFY_FILE_PATH;
               

                foreach (FileInfo fri in ArrFileName)
                {
                    FILE_NAME = fri.Name;
                    DATE_MODIFY_FILE_PATH = FILE_PATH + FILE_NAME;
                    //시간을 바꿔 주는 코드
                    if ((nS + TimeCnt) < 60)
                    {
                        File.SetLastWriteTime(DATE_MODIFY_FILE_PATH, new DateTime(nY, nM, nD, nH, nMin, nS + TimeCnt));
                    }
                    else if ((nS + TimeCnt) >= 60 && nMin < 59)
                    {
                        nMin++;
                        nS = 0;
                        TimeCnt = 0;
                        File.SetLastWriteTime(DATE_MODIFY_FILE_PATH, new DateTime(nY, nM, nD, nH, nMin, nS + TimeCnt));
                    }
                    else if ((nS + TimeCnt) >= 60 && nMin >= 60 && nH < 23)
                    {
                        nH++;
                        nMin = 0; nS = 0; TimeCnt = 0;
                        File.SetLastWriteTime(DATE_MODIFY_FILE_PATH, new DateTime(nY, nM, nD, nH, nMin, nS + TimeCnt));
                    }
                    else if ((nS + TimeCnt) >= 60 && nMin >= 60 && nH >= 24 && nD < 30)
                    {
                        nD++;
                        nH = 1; nMin = 0; nS = 0; TimeCnt = 0;
                        File.SetLastWriteTime(DATE_MODIFY_FILE_PATH, new DateTime(nY, nM, nD, nH, nMin, nS + TimeCnt));
                    }
                    else if ((nS + TimeCnt) >= 60 && nMin >= 60 && nH >= 24 && nD >= 30 && nM < 11)
                    {
                        nM++;
                        nD = 1; nH = 1; nMin = 0; nS = 0; TimeCnt = 0;
                        File.SetLastWriteTime(DATE_MODIFY_FILE_PATH, new DateTime(nY, nM, nD, nH, nMin, nS + TimeCnt));
                    }
                    else if ((nS + TimeCnt) >= 60 && nMin >= 60 && nH >= 24 && nD >= 30 && nM >= 12 && nD >= 30 && nH >= 24)
                    {
                        nY++;
                        nM = 1; nD = 1; nH = 1; nMin = 0; nS = 0; TimeCnt = 0;
                        File.SetLastWriteTime(DATE_MODIFY_FILE_PATH, new DateTime(nY, nM, nD, nH, nMin, nS + TimeCnt));
                    }
                    TimeCnt++;
                    Console.WriteLine(fri.Name);
                }

                Console.WriteLine("계속하려면 아무키나 누르세요...");
                Console.ReadLine();
            }
        }
    }

    반응형

    "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."