디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

헣...ㅠ 이거 알려주실 수 있는분 없나요

ProgressBar(58.103) 2012.11.23 14:11:25
조회 38 추천 0 댓글 0

지금 프로그레스바 동작하는게

전체 파일용량 체크해서 진행률을 보여줘야 하는데..

각 폴더별 파일용량을 체크해서 보여주는 것 같습니다...

100%가 여러번 차요...

전체용량에 대한 진행률을 보여주려면 어떻게 해야할까요...

구하는 식이 중간에 저렇게 쓰면 될 것 같았는데...

int percent = (int)((double)total_current / ((double)total * 100));

애초에 총 파일 용량을 구해오는 foreach문이 잘못된걸까요..?


 

private void Copy(string source, string dest)
        {
            FileInfo[] arrfileInfo = null;
            string[] dirList = Directory.GetDirectories(source);


            if (File.Exists(source))
            {
                arrfileInfo = new FileInfo[] { new FileInfo(source) };
            }
            else if (Directory.Exists(source))
            {
                DirectoryInfo di = new DirectoryInfo(source);
                arrfileInfo = di.GetFiles("*.*", SearchOption.AllDirectories);
            }

            foreach (string dir in dirList)
            {
                string dirName = dir.Substring(dir.LastIndexOf(@"") + 1);

                DirectoryInfo Dir = new DirectoryInfo(dest + dirName);

                if (!Dir.Exists)
                {
                    Directory.CreateDirectory(dest + dirName);
                }

                Copy(dir, dest + dirName + "");
            }

            if (arrfileInfo != null)
            {
                long total_current = 0;
                long total = 0;

                // 총 파일 용량
                foreach (FileInfo i in arrfileInfo)
                {
                    if ((i.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden)
                        total += i.Length;
                }

                foreach (FileInfo i in arrfileInfo)
                {
                    if ((i.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
                    {
                        continue;
                    }

                    FileStream rs = null, ws = null;

                    try
                    {
                        rs = new FileStream(i.FullName, FileMode.Open);
                        ws = new FileStream(destPath + "//" + i.FullName.Substring(sourcePath.Length, i.FullName.Length - (i.FullName.Substring(0, sourcePath.Length).Length)), FileMode.Create);
                        //ws = new FileStream(dest + "//" + i.Name, FileMode.Create);

                        this.Invoke((SetLabelDelegate)delegate(string fileName)
                        {
                            lblFile.Text = fileName;
                        }, new object[] { i.Name });

                        int readSize = 0;

                        while ((readSize = rs.Read(buffer, 0, buffer.Length)) != 0)
                        {
                            total_current += readSize;

                            // ProgressBar
                            int percent = (int)((double)total_current / ((double)total * 100));

                            this.Invoke((SetProgDelegate)delegate(int value)
                            {
                                this.pbTransfer.Value = value;
                                this.lblPer.Text = String.Format("{0}%", value);
                            },
                            new object[] { percent });

                            ws.Write(buffer, 0, readSize);
                        }
                    }
                    catch (Exception e)
                    {
                        MessageBox.Show(e.ToString());
                    }
                    finally
                    {
                        try
                        {
                            rs.Close();
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.ToString());
                        }
                        try
                        {
                            ws.Close();
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.ToString());
                        }
                    }
                }
                this.Invoke((SetProgDelegate)delegate(int value)
                {
                    this.pbTransfer.Value = value;
                    this.lblPer.Text = String.Format("{0}%", value);
                }, new object[] { 100 });

                Thread.Sleep(500);
            }

            this.Invoke((ExitDelegate)delegate()
            {
                this.DoEnd();
            });
        }

 

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 모태 솔로도 구제해 줄 것 같은 연애 고수 스타는? 운영자 25/07/21 - -
338816 나 학원좀 다닐건데 조금 알려줘 [3] 눈팅(221.164) 12.11.26 367 0
338815 고무줄 일정에 의한 우울증이 오면 산재냐? [1] ㅇㅇ(58.102) 12.11.26 53 0
338814 혹시 하시는 일이 프로그래머 십니까? [2] 에어로홍갤로그로 이동합니다. 12.11.26 132 0
338813 라이엇게임즈에 입사하고싶다 ㅜㅜ [3] Adelposs갤로그로 이동합니다. 12.11.26 139 0
338809 형들 걍 구라친거임 ㅈㅅ Kyle(220.244) 12.11.26 52 0
338808 빡친다.. 괜히 버전 교체하자고 했다 ㅠㅠ 얼룩돼지갤로그로 이동합니다. 12.11.26 40 0
338806 기본 슬롯머신 [2] 이모군(175.114) 12.11.26 67 0
338797 여자친구란 존재를 코딩한거 보고싶다 [1] 뉴비(223.33) 12.11.26 53 0
338796 안드로이드 Strict Mode 적용해놓고 그대로 스토어에 올려서 배포해 [1] 얼룩돼지갤로그로 이동합니다. 12.11.26 58 0
338794 jquery & Ajax 문법 요것좀 해석해주세요 ㅠㅠ [4] 궁금한게많으갤로그로 이동합니다. 12.11.26 129 0
338793 맨날 점심뭐먹을까도 고역아니냐 [1] ㅁㅇㅁ(211.244) 12.11.26 85 0
338791 c언어 과제 해준다 [7] ㅇㅇ(121.163) 12.11.26 181 0
338790 html 태그 질문좀 [2] ㅇㄴㅇㄹ(61.72) 12.11.26 47 0
338786 SE(시스템 엔지니어) 좋은거냐? [2] ㅈㅈ(1.214) 12.11.26 194 0
338783 밥먹고일해라 얼룩돼지갤로그로 이동합니다. 12.11.26 24 0
338782 근데 요즘 곽가 안보임 곽가 어디감? [1] 초딩6(59.13) 12.11.26 79 0
338781 요즘 유니티 책 왜이렇게 많이나오냐? 초딩6(59.13) 12.11.26 85 0
338780 지구 멸망이 다가오는데 회사다닐 때가 아닌거 같다. 종말론(182.211) 12.11.26 39 0
338778 음.. 군대에서 볼만한 책좀 알려주세요 ㅠ [12] 두비두분(125.129) 12.11.26 181 0
338775 싸이 그 새끼 떄문에 산업체 자격 빡세졌지 [2] ㅁㅇㄴㅁㄴㅇ(59.11) 12.11.26 97 0
338772 html, css, js 책 사려고 하는데 형들 추천해줄거 있어? [3] (59.14) 12.11.26 165 0
338771 애플이 망하지 않는 이유 1가지 추가한다. [2] ㅇ.갤로그로 이동합니다. 12.11.26 115 0
338769 네트워크 프로그래밍에서 send에서의 문제 [5] ㅁㄴㅇ(112.170) 12.11.26 91 0
338768 형들 갑자기 else에서 오류나 ㅡㅡ [2] i5-760(220.94) 12.11.26 62 0
338767 우분투 12.04에서 루트계정으로 로그인 하는 방법... [1] 어텅엇헝(211.63) 12.11.26 147 0
338766 형들 내가 JDBC공부좀 하려는데 환경설정이 뭔가 안되는 것 같아 고자라인(175.112) 12.11.26 47 0
338765 형들 어플만들고 있는데 좀 도와줘요 [3] 당근의유혹갤로그로 이동합니다. 12.11.26 117 0
338763 외주 했는데 입금이 안됨 [1] d(175.192) 12.11.26 75 0
338762 근대 정보처리기사는 그나마양호한건다. 미용자격증은 어떤건지아냐? [2] 외국여행가자(59.26) 12.11.26 154 0
338761 Visual C++는 거대한 switch-case를 어떻게 처리하는가 r(175.192) 12.11.26 110 0
338760 정보처리기사 ..시바 한달동안공부해서 겨우딴나는뭐냐 [4] 외국여행가자(59.26) 12.11.26 263 0
338756 혹시 DB,asp 하실줄 아시는분있나요? 수고비드려요 [1] 뉴뉴(119.206) 12.11.26 57 0
338755 정보처리기사 이거 심각하네 [5] dd(182.215) 12.11.26 243 1
338752 C++ 고수를 찾습니다. [10] 고수를찾다(180.64) 12.11.25 184 0
338750 지금 다큐멘터리 3일 봐봐 다크엔젤z갤로그로 이동합니다. 12.11.25 87 0
338748 MAD LAN [1] 때릴꺼야?(116.40) 12.11.25 87 0
338745 플게이들아 이제 막 프로그래밍 공부해보려는 좆대딩 3학년인데 [4] ㅇㅇㅇ(122.34) 12.11.25 207 0
338744 안드로이드 버튼 이미지에 관해서 하나 여쭤볼게영.. [4] 프램천사(121.186) 12.11.25 68 0
338742 안드로이드 게임들 ... 결제크랙 만들줄 아시는분 연락바래요 [5] 사시미(210.123) 12.11.25 198 0
338741 jquery ajax 질문 하나만 한다 [11] 리버싱갤로그로 이동합니다. 12.11.25 144 0
338740 프갤에 개고수님들이 많다고 하여 올려봅니다. ㅎㅎㅎㅎ(119.198) 12.11.25 62 0
338739 C# 고수님들 부탁좀 드립니다.. [2] 정세희입니다.갤로그로 이동합니다. 12.11.25 144 0
338738 저내일 진짜 옆집가서 물어보고옴 새우튀김가루갤로그로 이동합니다. 12.11.25 64 0
338737 하앍 트위터 플텍계정 뚫고싶다 ㄹㅇㄴㅁ(115.20) 12.11.25 6013 0
338735 리눅스에서 윈도우의 BitLocker 드라이브 암호화 같은거 없나요? [3] 학생(195.60) 12.11.25 199 0
338734 db 테이블 한글 여백에 대해 질문점여 [4] db질문점(211.234) 12.11.25 75 0
338733 directx써서 작업표시줄 3d로 바꾸면 재밋을듯 [4] 티버애니갤로그로 이동합니다. 12.11.25 91 0
338731 펌웨어 프로그래밍 어려움?? 조낸 노가다임?? 노인(182.211) 12.11.25 67 0
338730 후........ 나이가 많아서 취업이 안되는 듯 하다. [2] 노인(182.211) 12.11.25 163 0
338728 아오 게임 프레임이 왜이러냐 [6] 설리(119.199) 12.11.25 121 0
뉴스 “내가 고자라니” 야인시대 배우, 안타까운 근황 전해졌다 디시트렌드 07.25
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2