본문 바로가기
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();
        }
    }
}

반응형

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