188 lines
6.2 KiB
C#
188 lines
6.2 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using System.IO;
|
|
|
|
using INT_PT002.DataStore;
|
|
|
|
namespace INT_PT002.DialogForms
|
|
{
|
|
public partial class DialogFormProgressBar : Form
|
|
{
|
|
#region Field
|
|
private int Check;
|
|
|
|
private string USBPath = "";
|
|
private string UpdateFilePath = "";
|
|
private string OldFilePath = "";
|
|
private string RemoveFolderPath = "";
|
|
|
|
private Define.E_LanguageID m_Language;
|
|
#endregion
|
|
|
|
#region Constructor
|
|
public DialogFormProgressBar()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
public DialogFormProgressBar(int code, Define.E_LanguageID language)
|
|
{
|
|
InitializeComponent();
|
|
|
|
this.smartGroupBox1.Text = "";
|
|
this.labelMessage1.Text = "";
|
|
this.labelMessage2.Text = "";
|
|
|
|
this.Language = language;
|
|
|
|
if (language == Define.E_LanguageID.Korean)
|
|
{
|
|
#region 한글
|
|
switch (code)
|
|
{
|
|
case 1:
|
|
this.smartGroupBox1.Text = "Update";
|
|
this.labelMessage1.Text = "업데이트 중...";
|
|
this.labelMessage2.Text = "USB를 본체에서 분리하지 마십시오.";
|
|
break;
|
|
case 2:
|
|
this.smartGroupBox1.Text = "";
|
|
this.labelMessage1.Text = "";
|
|
this.labelMessage2.Text = "";
|
|
break;
|
|
default:
|
|
this.smartGroupBox1.Text = "Error 99";
|
|
this.labelMessage1.Text = "제조사에 문의하세요";
|
|
this.labelMessage2.Text = "";
|
|
break;
|
|
}
|
|
#endregion
|
|
}
|
|
else if (language == Define.E_LanguageID.English)
|
|
{
|
|
#region 영문
|
|
switch (code)
|
|
{
|
|
case 1:
|
|
this.smartGroupBox1.Text = "Update";
|
|
this.labelMessage1.Text = "Updating...";
|
|
this.labelMessage2.Text = "Do not remove the USB from the device.";
|
|
break;
|
|
case 2:
|
|
this.smartGroupBox1.Text = "";
|
|
this.labelMessage1.Text = "";
|
|
this.labelMessage2.Text = "";
|
|
break;
|
|
default:
|
|
this.smartGroupBox1.Text = "Error 99";
|
|
this.labelMessage1.Text = "Please contact a manufacturer";
|
|
break;
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region Property
|
|
public Define.E_LanguageID Language
|
|
{
|
|
get { return this.m_Language; }
|
|
set { this.m_Language = value; }
|
|
}
|
|
#endregion
|
|
|
|
#region Method
|
|
private void ProgramUpdate()
|
|
{
|
|
FileInfo[] newFiles;
|
|
DirectoryInfo directoryFolderUpdateFiles = new DirectoryInfo(this.UpdateFilePath);
|
|
if (directoryFolderUpdateFiles.Exists == false)
|
|
directoryFolderUpdateFiles.Create();
|
|
|
|
this.Check = 0;
|
|
|
|
this.UpdateFilePath = this.USBPath + "UpdateFiles\\";
|
|
this.OldFilePath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\";
|
|
if (this.OldFilePath.StartsWith("\\F") == true)
|
|
this.RemoveFolderPath = "Flash Disk\\RemoveFile\\";
|
|
else
|
|
this.RemoveFolderPath = "SD Card\\RemoveFile\\";
|
|
|
|
newFiles = directoryFolderUpdateFiles.GetFiles();
|
|
|
|
this.progressBarUpdate.Value += 20;
|
|
|
|
this.TreatmentRemoveOldFile();
|
|
|
|
this.progressBarUpdate.Value += 20;
|
|
|
|
this.TreatmentCopyNewFile(newFiles);
|
|
|
|
this.progressBarUpdate.Value += 100;
|
|
this.UpdateLabelStatus(Language);
|
|
}
|
|
private void TreatmentRemoveOldFile()
|
|
{
|
|
bool removeFolderCheck = false;
|
|
FileInfo[] oldFiles;
|
|
FileInfo[] removeFiles;
|
|
DirectoryInfo directoryFolderRun = new DirectoryInfo(this.OldFilePath);
|
|
DirectoryInfo directoryFolderRemove = new DirectoryInfo(this.RemoveFolderPath);
|
|
|
|
removeFolderCheck = directoryFolderRemove.Exists;
|
|
oldFiles = directoryFolderRun.GetFiles();
|
|
|
|
if (removeFolderCheck == false)
|
|
directoryFolderRemove.Create();
|
|
//else
|
|
//{
|
|
// removeFiles = directoryFolderRemove.GetFiles();
|
|
// foreach (FileInfo file in removeFiles)
|
|
// file.Delete();
|
|
//}
|
|
|
|
foreach (FileInfo subFile in oldFiles)
|
|
subFile.MoveTo(RemoveFolderPath + DateTime.Now.ToString("yyyyMMddHHmmss") + subFile.Name.ToString());
|
|
|
|
this.progressBarUpdate.Value += 20;
|
|
}
|
|
private void TreatmentCopyNewFile(FileInfo[] newFile)
|
|
{
|
|
// 새 파일 복사
|
|
foreach (FileInfo subFile in newFile)
|
|
subFile.CopyTo(this.OldFilePath + subFile.Name.ToString());
|
|
|
|
this.progressBarUpdate.Value += 20;
|
|
}
|
|
|
|
private void UpdateLabelStatus(Define.E_LanguageID language)
|
|
{
|
|
this.progressBarUpdate.Visible = false;
|
|
switch (language)
|
|
{
|
|
case Define.E_LanguageID.Korean:
|
|
this.labelMessage1.Text = "프로그램 업데이트 완료";
|
|
this.labelMessage2.Text = "전원을 끄고 다시 켜주세요";
|
|
break;
|
|
case Define.E_LanguageID.English:
|
|
this.labelMessage1.Text = "Program update complete";
|
|
this.labelMessage2.Text = "Reset the system";
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
this.Refresh();
|
|
}
|
|
#endregion
|
|
}
|
|
} |