DataSet을 만들고 DataTable을 생성하여

해당 디렉토리에 있는 파일 데이터( 이름, 형식, 수정날짜, 크기 )를 넣고 

DataGridView에 출력해보겠습니다.

 

DataSet ds = new DataSet();

 

        private void btnSearch_Click_1(object sender, EventArgs e)
        {
            bool bCheckIsTalbe = false;


            FolderBrowserDialog fbd = new FolderBrowserDialog();

            if (fbd.ShowDialog() == DialogResult.OK)
            {
                string[] files = { "", };

                try
                {
                    files = Directory.GetFiles(fbd.SelectedPath, "*.*", SearchOption.AllDirectories);

                    foreach (string f in files)
                    {
                        // DataSet안에 해당하는 DataTable이 있는지 확인 한다
                        if (ds.Tables.Contains("FileSearch"))
                        {
                            bCheckIsTalbe = true;
                        }

                        DataTable dt = null;

                        if (!bCheckIsTalbe)  // 기존 Table이 없을 경우 신규로 생성
                        {
                            dt = new DataTable("FileSearch");

                            //DataColumn 생성
                            DataColumn colName = new DataColumn("이름", typeof(string));
                            DataColumn colType = new DataColumn("확장자", typeof(string));
                            DataColumn colDate = new DataColumn("수정한 날짜", typeof(string));
                            DataColumn colSize = new DataColumn("크기", typeof(string));

                            //생성된 Column을 DataTable에 Add
                            dt.Columns.Add(colName);
                            dt.Columns.Add(colType);
                            dt.Columns.Add(colDate);
                            dt.Columns.Add(colSize);
                        }
                        else // 기존 Table이 있을 경우 기존 Table을 가져온다
                        {
                            dt = ds.Tables["FileSearch"];
                        }

                        FileInfo info = new FileInfo(files[cnt]);

                        //이름, 확장명, 수정한 날짜, 크기
                        string strFileName = info.Name;
                        int lastIndex = strFileName.LastIndexOf('.');

                        // 이름만 출력될 수 있도록 뒤에 .부터 자른다.
                        string strResult = $"{strFileName.Substring(0, lastIndex)}";  //가공된 이름

                        string strFileType = info.Extension;  // 확장자명
                        string strFileDate = info.LastWriteTime.ToString(); // 수정한 날짜
                        string strFileSize = GetFileSize(info.Length); // 크기


                        if (files.IsFixedSize)
                        {
                            cnt++;
                        }

                        //Row 생성
                        DataRow row = dt.NewRow();
                        row["이름"] = strResult;
                        row["확장자"] = strFileType;
                        row["수정한 날짜"] = strFileDate;
                        row["크기"] = strFileSize;

                        //생성된 Row을 DataTable에 Add
                        if (bCheckIsTalbe)
                        {
                            // DataSet에 해당 DataTalbe이 있을 경우 기존 Table에 Row를 추가한다
                            ds.Tables["FileSearch"].Rows.Add(row);  
                        }
                        else
                        {
                            dt.Rows.Add(row);   // 신규로 작성한 DataTable에 Row를 등록 하고, 
                            ds.Tables.Add(dt);  // 등록한 DataTable을 DataSet에 추가한다
                        }
                    }
                    //DataGridView에 내용출력
                    dataGridView1.DataSource = ds.Tables["FileSearch"];

                    //DataGridView 컬럼 속성 설정
                    dataGridView1.Columns["수정한 날짜"].Width = 140;

                }
                catch (IOException ex)
                {
                    MessageBox.Show(ex.Message);
                }

                cnt = 0;

            }
        }
 
 

보통 DataSet을 활용할때 텍스트파일, Excel 또는 DB를 이용해서

데이터를 저장하고 불러오는 방법을 많이 쓰지만

단순히 해당 폴더에 있는 파일데이터를 불러오는것이 목적이기때문에

따로 텍스트파일이나 excel, DB에는 저장하지 않겠습니다.

모두 메모리상에서만 이루어지는 것이기때문에

프로그램이 종료되면 모두 지워집니다.

 

 

 

 

 

 

 

'Programing > C#' 카테고리의 다른 글

C# LOG파일 생성  (0) 2022.03.12
C# CrossThread Error 해결  (0) 2022.02.21
C# Panel에 간단하게 타원(Rectangle)그리기  (0) 2019.12.17
[DevExpress] SimpleButton 색변경  (0) 2018.10.04
[DevExpress] XtraMessageBox DialogResult Settings  (0) 2018.10.04

1. 150x150 Panel를 만든다.

2. Paint 이벤트를 추가한다.

3. 코드 한줄 추가한다. e.Graphics.FillEllipse(new SolidBrush(Color.Red), new Rectangle(15, 5, 120, 140));

결과

코드 비교 프로그램 : Beyond Compare

파일 검색 프로그램 : Everything

 

1. Beyond Compare

http://www.scootersoftware.com/download.php

1) 다운로드는 30일 체험판으로 사용할 수 있으며 언어는 영어로 선택한다.

2) 한글로 사용하고 싶다면 해당 페이지로 이동 후 Korean Version 으로 다운받는다.

 

 

 

2. Everything

https://www.voidtools.com/ko-kr/downloads/

 

다운로드 - voidtools

 

www.voidtools.com

작은 설치파일, 깔끔하고 단순한 UI, 빠른 파일 색인, 빠른 검색, 빠른 시작, 최저 자원사용, 실시간 갱신등

매우 유용한 유틸이다.

버전 별로 다운로드가 가능하다.

SimpleButton 색상 변경


SimpleButton의 색을 변경하려면  LookAndFeel.StyleFlat, Ultra Flat 또는 Style3D로 설정해야합니다.


this.Exit_btn.LookAndFeel.Style = LookAndFeelStyle.Flat;

this.Exit_btn.LookAndFeel.UseDefaultLookAndFeel = false;

this.Exit_btn.Appearance.BackColor = Color.White;

this.Exit_btn.Appearance.Options.UseBackColor = true;



XtraMessageBox 기본출력


if (DialogResult.Yes == XtraMessageBox.Show("프로그램을 종료하시겠습니까?", "프로그램 종료!", MessageBoxButtons.YesNo, MessageBoxIcon.Stop))

{

        this.close();

}



[ 결과 이미지 ]


기본출력 이미지입니다. 

뭔가 색상과 글씨크기가 맘에 들지 않습니다.

그래서 자신이 원하는 디자인으로 바꿔보겠습니다.


DevExpress.XtraEditors.XtraMessageBox.AllowHtmlText = true; // Html사용

if (DialogResult.Yes == XtraMessageBox.Show("<size=10><color=blue>프로그램을 종료하시겠습니까?</color></size>", 

"<size=10>프로그램 종료!</size>", MessageBoxButtons.YesNo, MessageBoxIcon.Stop))

{

    this.close();

}


[ 결과 이미지 ]


Html을 사용하여 간단히 바꿔보았습니다.





[응용] DialogButton icon add 아이콘 추가


DialogButton에 Yes, No에 각각 아이콘을 추가해보겠습니다.

[1]. Form에 svgImageCollection 도구를 추가합니다.

.


[2]. From DevExpress Gallery를 클릭해서 사용할 아이콘들을 선택, 확인합니다.

 



[3]. Edit Collection에서 선택했던 아이콘을 확인합니다.




[4]. 코드작성

private void Exit_btn_Click(object sender, EventArgs e)

{

    DevExpress.XtraEditors.XtraMessageBox.AllowHtmlText = true;

    XtraMessageBoxArgs args = new XtraMessageBoxArgs();

    args.Caption = "<size=10><color=red>주의!</color></size>";   //제목 텍스트 

    args.Text = "<size=10>프로그램을 종료하시겠습니까?<size=10>";  // 내용 텍스트 

    args.Buttons = new DialogResult[] { DialogResult.OK, DialogResult.Cancel };

    args.Showing += Args_Showing;

    

    if (DialogResult.OK == XtraMessageBox.Show(args))

    {

        Application.Exit();

    }

}



private void Args_Showing(object sender, XtraMessageShowingArgs e)

{

    foreach (var control in e.Form.Controls)

    {

        SimpleButton button = control as SimpleButton;

        if (button != null)

        {

            button.ImageOptions.SvgImageSize = new Size(16, 16); //표시되는 아이콘 크기설정

            button.Font = new System.Drawing.Font(button.Font.FontFamily, 10); //버튼 폰트 크기설정

            //button.Height = 25; 

            switch (button.DialogResult.ToString())

            {

                case ("OK"):

                    button.ImageOptions.SvgImage = svgImageCollection1[0]; //Edit Collection에서 Itme에 첫번째 등록되있는 svg이미지를 불러온다

                    //button.Text = "네";  //버튼이름변경

                    break;

                case ("Cancel"):

                    button.ImageOptions.SvgImage = svgImageCollection1[1];

                    //button.Text = "아니오";

                    break;

                    }

                }

            }

        }


[ 결과 이미지 ]



 

머리카락 보일라

 

'유머' 카테고리의 다른 글

불륜저지르다 걸림  (0) 2018.10.03
개와 통나무  (0) 2018.10.03
어디보자 파도를 즐길만한 자리가  (0) 2018.10.03

 

ㅌㅌㅌㅌ

'유머' 카테고리의 다른 글

꼭꼭 숨어라  (0) 2018.10.03
개와 통나무  (0) 2018.10.03
어디보자 파도를 즐길만한 자리가  (0) 2018.10.03

 

주인님 제가 물어왔습니다.

어이쿠... 푸..푸왁

 

'유머' 카테고리의 다른 글

꼭꼭 숨어라  (0) 2018.10.03
불륜저지르다 걸림  (0) 2018.10.03
어디보자 파도를 즐길만한 자리가  (0) 2018.10.03

 

어디보자 파도를 즐길만한 자리가 어딨나.. 푸..푸왁

'유머' 카테고리의 다른 글

꼭꼭 숨어라  (0) 2018.10.03
불륜저지르다 걸림  (0) 2018.10.03
개와 통나무  (0) 2018.10.03

[1]. DateTimestring으로 변환


DateTime myDateTime = DateTime.Now;


//DateTime을 string으로 변환

string myConvertDateTime = myDateTime.ToString("yyyy/MM/dd hh:mm:ss");

Label1.Text = myConvertDateTime;




[2]. DateTimePickerstring으로 변환


DateTimePicker myDateTime = new DateTimePicker();


//DateTimePicker를 string으로 변환

 Label1.Text = myDateTime .Value.ToString("yyyy/MM/dd hh:mm:ss");


'Programing > C#' 카테고리의 다른 글

[DevExpress] SimpleButton 색변경  (0) 2018.10.04
[DevExpress] XtraMessageBox DialogResult Settings  (0) 2018.10.04
아이디 등록시 특수문자 체크  (0) 2018.09.18
[DevExpress] WinForm WaitIndicator  (0) 2018.09.05
set, get 접근자  (0) 2018.06.29

+ Recent posts