티스토리 뷰
c#
[c#/wpf/mvvm] [wpf/c#] mvvm 을 활용한 런처(전원 관리 및 파일 관리) 만들기(3/3) FTP 파일 다운로드 / 앱 자동 실행 / Config파일
개발자 고포고 2022. 3. 2. 20:58반응형
#Flow
-런처가 실행되면, Config파일에서 각각의 PC 및 콘텐츠, FTP 정보를 받아온다.
-정보에 맞게 파일을 다운로드 한다.
-런처를 통하여 각 어플리케이션을 실행한다.
#런처가 실행되면, Config파일에서 각각의 PC 및 콘텐츠, FTP 정보를 받아온다.
#config.ini
[path]
local_path=C:\Contents
app_path=C:\SE_APP\test.bat
host=192.168.0.75
id=ftpuser
pw=1
[config]
pc_num=1
item_num=1
다음 정보를 읽어들여서 INIParer를 통하여 편하게 가져온다.
#ConfigHelper
public class ConfigHelper
{
private static ConfigHelper _instance { get; set; }
public static ConfigHelper Instance
{
get
{
return _instance ?? (_instance = new ConfigHelper());
}
}
INIParser parser;
public string GetCurrentDirectory()
{
return AppDomain.CurrentDomain.BaseDirectory;
}
public ConfigHelper()
{
parser = new INIParser();
Open();
}
private void Open()
{
var path = Path.Combine(GetCurrentDirectory(), @"config\config.ini");
parser.Open(path);
}
public string Read(string section,string key)
{
return parser.ReadValue(section, key,"");
}
#INIParser는 https://assetstore.unity.com/packages/tools/advanced-ini-parser-23706
다음 에셋을 조금 변경하여 사용하였다. 나의 소스가 아니기때문에 공개하긴 좀 그렇고 위 링크를 참고하여 가공하면되고 혹시 내가 재가공한 소스를 원하시는 분은 댓글을 남겨주세요.
#정보에 맞게 파일을 다운로드 한다.
#Ftp
ftp = new Ftp("192.168.0.75", "ftpuser", "1");
ftp.DownloadFileAsyncCompleted += Ftp_DownloadFileAsyncCompleted;
ftp.DownloadProgressChanged += Ftp_DownloadProgressChanged;
ftp.DownloadDirectoryAsyncWC("/1/1", path);
#Ftp Events
private void Ftp_DownloadProgressChanged(object sender, FtpDownloadProgressChangedEventArgs e)
{
ProgressText = "Doing ...";
ProgressValue = e.ProgressPercentage;
ProgressPText = $"{ProgressValue.ToString("000")}%";
}
private void Ftp_DownloadFileAsyncCompleted(object sender, FtpAsyncCompletedEventArgs e)
{
ProgressText = "Completed";
var app_path = ConfigHelper.Instance.Read("path", "app_path");
Process.Start(app_path);
Application.Current.MainWindow.WindowState = WindowState.Minimized;
}
#Ftp같은 경우 지난 번에 공유해드렸던 저의 소스를 참고하시면됩니다.
Ftp에서 파일이 모두 다운로드되면 실제로 실행할 앱을 실행한 후 런처를 최소화 시킨다.
#런처 #ftp #donwload #c# #wpf #mvvm #minimize #ini #config
반응형
'c#' 카테고리의 다른 글
[c#/unity] 시스템 볼륨(system volumn) 제어하기 ( CoreAudio 사용) (0) | 2022.03.23 |
---|---|
[unity/ wpf/c#] newton json Serialize/deSerialize(ToJson/ToObject) 엄청 쉽게 하는법 (0) | 2022.03.16 |
[wpf/c#] mvvm 을 활용한 런처(전원 관리 및 파일 관리) 만들기(2/3) (0) | 2022.03.02 |
[c#/wpf/unity] 나의 아이피 주소 가져오기 헬퍼구현 (0) | 2022.03.02 |
[c#/wpf/winform/unity] Byte to String / String to Byte 로 변환 컨버팅 (0) | 2022.03.02 |
댓글
반응형