티스토리 뷰

반응형

 

#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같은 경우 지난 번에 공유해드렸던 저의 소스를 참고하시면됩니다.

https://gofogo.tistory.com/95

 

[C#/wpf/unity] ftp 라이브러리

[C#/wpf/unity] ftp 라이브러리 #소스 경로 https://github.com/gofogo2/Ftp_Library.git #업로드 사용법 (다운로드도 동일하게 사용가능) Ftp ftp = new Ftp("192.168.0.107", "ftpuser", "1"); //이벤트 생성 ft..

gofogo.tistory.com

 

Ftp에서 파일이 모두 다운로드되면 실제로 실행할 앱을 실행한 후 런처를 최소화 시킨다.

 

#런처 #ftp #donwload #c# #wpf #mvvm #minimize #ini #config

반응형
댓글
반응형