반응형
github: github.com/Co-dingman/FileDateModifer
회사에서 문서의 날짜를 수정해야 할 일이 있어, 개발.
+ Exception 부분을 전문적으로 코딩하지 않음. (추가 필요함.)
FileDateModifer.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
namespace FileDateModifer
{
public class FileDateModifer
{
public Dictionary<string, DateTime> GetFileInfo(string filePath)
{
Dictionary<string, DateTime> GetFileInfo = new Dictionary<string, DateTime>();
Form1 form1 = new Form1();
var info = new FileInfo(filePath);
//파일의 정보(생성, 엑세스, 수정)를 불러옴.
GetFileInfo.Add("CreationTime", info.CreationTime);
GetFileInfo.Add("LastAccessTime", info.LastAccessTime);
GetFileInfo.Add("LastWriteTime", info.LastWriteTime);
return GetFileInfo;
}
public bool SetFileDate(string filePath, Dictionary<string,DateTime> getSetDate)
{
bool setDateOk;
try
{
//설정된 시간에 맞춰 파일 날짜를 수정함.
File.SetCreationTime(filePath, getSetDate["CreationTime"]);
File.SetLastWriteTime(filePath, getSetDate["LastWriteTime"]);
File.SetLastAccessTime(filePath, getSetDate["LastAccessTime"]);
setDateOk = true;
}
catch(IOException e)
{
MessageBox.Show("날짜 변경에 실패함. \n에러코드: " + e, "날짜 변경 실패");
setDateOk = false;
}
return setDateOk;
}
}
}
Forms1.cs
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace FileDateModifer
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void OpenFileBtn_Click(object sender, EventArgs e)
{
//Open File 버튼 클릭 시, 파일의 생성, 수정, 엑세스 일자를 데이트피커에 입력함.
Dictionary<string, DateTime> FileInfo;
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == DialogResult.OK) FilePath.Text = ofd.FileName;
FileDateModifer fdm = new FileDateModifer();
FileInfo = fdm.GetFileInfo(ofd.FileName);
CreationTime.Value = FileInfo["CreationTime"];
LastWriteTime.Value = FileInfo["LastWriteTime"];
LastAccessTime.Value = FileInfo["LastAccessTime"];
//throw new System.NotImplementedException();
}
private void ChangeCollectiveBtn_Click(object sender, EventArgs e)
{
//일괄 변경 클릭 시 메인으로 설정한 시간으로 모두 변경됨.
CreationTime.Value = ChangeCollectiveTime.Value;
LastWriteTime.Value = ChangeCollectiveTime.Value;
LastAccessTime.Value = ChangeCollectiveTime.Value;
}
private void 도움말ToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("1) Open File 버튼을 클릭하여 파일을 불러주세요.\n" +
"2) 기존 파일에 날짜 정보가 입력됩니다. 해당 날짜를 변경해주세요.\n" +
"2-1) 일괄변경 옆 날짜 정보를 이용하여 날짜 정보를 일괄로 변경할 수 있습니다.\n" +
"3) Modify Date 버튼을 클릭하여 날짜를 수정합니다.", "사용법");
}
private void 정보ToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("해당 프로그램은 파일의 작성 & 수정 & 엑세스 일자를 변경하는 프로그램입니다.\n" +
"version1.0", "프로그램 정보");
}
private void ModifyDateBtn_Click(object sender, EventArgs e)
{
//날짜 수정 버튼 클릭 시 설정한 날짜 값으로 파일의 설정이 변경됨.
bool setDateOk;
FileDateModifer fdm = new FileDateModifer();
Dictionary<string, DateTime> getSetDate = new Dictionary<string, DateTime>();
getSetDate.Add("CreationTime", CreationTime.Value);
getSetDate.Add("LastWriteTime", LastWriteTime.Value);
getSetDate.Add("LastAccessTime", LastAccessTime.Value);
setDateOk = fdm.SetFileDate(FilePath.Text, getSetDate);
if (setDateOk) MessageBox.Show("날짜 변경에 성공함", "날짜 변경 성공");
//throw new System.NotImplementedException();
}
}
}
'개발 실습 및 프로젝트' 카테고리의 다른 글
클라우드 컴퓨팅 실습: AWS EC2 인스턴스 생성 및 설정 (0) | 2024.05.21 |
---|---|
파이썬을 사용한 데이터 분석 기초 (0) | 2024.05.20 |
[프로그래머스] K번째수 javascript (공부) (0) | 2021.01.31 |
[프로그래머스] 크레인 인형뽑기 게임 javascript (0) | 2021.01.31 |
[Java] file copy 개발 (0) | 2021.01.31 |