디시인사이드 갤러리

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

갤러리 본문 영역

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

ProgressBar(58.103) 2012.11.23 14:11:25
조회 33 추천 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/06/30 - -
AD 휴대폰 바꿀까? 특가 구매 찬스! 운영자 25/07/02 - -
338615 c언어 고수님들 도와주세요ㅠ ㅠㅠ [3] 도와줘(165.132) 12.11.24 120 0
338613 이 코드 왜 순서대로 실행이 안되지??? [1] ㅇㅇ(203.90) 12.11.24 49 0
338611 sqlite 짱좋당 이히힝 (175.192) 12.11.24 52 0
338610 형들 C++ 콘솔 실행창 위치 지정하는 방법있나여? [2] WannaParty갤로그로 이동합니다. 12.11.24 100 0
338607 자바진영] 이책 좆나 좋네 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ dㅁㄴㅇㅁㄴ(59.11) 12.11.24 102 0
338606 java- android,node.js 만 하면 c안해도될듯 [3] 티버애니갤로그로 이동합니다. 12.11.24 104 0
338605 "]" (square bracket) 의 아름다움 [4] Kyle(220.244) 12.11.24 105 0
338604 Muḥammad ibn Mūsā al-Khwārizmī [알고리즘 만든사 [1] Kyle(220.244) 12.11.24 50 0
338601 리눅스는어떤언어로 되어있음?? [1] rkrrj(121.176) 12.11.24 103 0
338600 더이상 신규웹서비스 출시는 계란으로 티타늄 치기 [10] ggg(58.233) 12.11.24 145 0
338599 sns같은 웹만들어볼려하는데 [4] ㅁㄴㅍㅍㅍ(121.176) 12.11.24 80 0
338597 헤드퍼스트 책볼려는데 이순으로테크타야함? [2] ㅁㄴㅍㅍㅍ(121.176) 12.11.24 113 0
338596 Head First HTML5 Programming 이책어떰? [6] ㅁㄴㅍㅍㅍ(121.176) 12.11.24 100 0
338595 곽팀장 나와라. [12] dlbo갤로그로 이동합니다. 12.11.24 125 0
338594 코사 폐지됐다 니눔드라. ㅋㅋㅋ ggg(58.233) 12.11.24 61 0
338593 C언어 간단한거 고수님들 도와주세요 ㅠㅠㅠ [6] 도와줘(165.132) 12.11.24 79 0
338592 php배울건데 책추천좀 [1] 호규너(119.199) 12.11.24 47 0
338591 C언어 배워보려고 하는데 책... [2] C언어초보(112.163) 12.11.24 193 1
338590 안녕하세요 수능끝난 좆고3인데 언어 한번 공부해보려고 합니다 [10] 좆고3(182.208) 12.11.24 161 0
338589 프로그램 안에 DB를 내장하는건 어떤방법이 있음? [2] (175.192) 12.11.24 71 0
338585 이렇게 쌓아놓으면 울 엄마는 [9] (59.14) 12.11.24 156 0
338582 징징대고 싶다.. Aven갤로그로 이동합니다. 12.11.24 39 0
338579 비주얼 스튜디오는 인텔리센스같은거 어떻게 쓰나여 (=자동완성) [3] (175.192) 12.11.24 122 0
338578 문서화 말인데 에릭슈미트갤로그로 이동합니다. 12.11.24 34 0
338577 횽들 나 유니티좀 도와줘 [1] 유니티돌이(211.234) 12.11.24 53 0
338576 프로그래밍 언어 공부 못지 않게 영어 공부도 해라. [12] 중달(175.118) 12.11.24 246 0
338575 리버싱 재미있냐? [6] Adelposs갤로그로 이동합니다. 12.11.24 163 0
338571 이런 ui 어디서 많이 본것같은데  어디서 이런ui씀? [6] 1221(121.176) 12.11.24 152 0
338570 아 스카너 튀김 먹고싶다. [2] ''.갤로그로 이동합니다. 12.11.24 46 0
338565 집가서 씻고 맥주마시면서 롤이나 한판하자 [5] Adelposs갤로그로 이동합니다. 12.11.24 61 0
338564 어제 졸작 물어본 놈임 [4] 123(118.36) 12.11.23 142 0
338562 시발 거제부터 시작해서 지금까지 잠안자고 약 53시간연속으로작업햇다. vector(121.176) 12.11.23 48 0
338561 상상이 이시끼 ㅋ Adelposs갤로그로 이동합니다. 12.11.23 29 0
338560 매우 존나게 피곤하다 Adelposs갤로그로 이동합니다. 12.11.23 22 0
338559 나 멘사회원이다. [6] 일단(14.45) 12.11.23 155 0
338558 아이디어 낸다. 보라(14.45) 12.11.23 68 0
338557 거기서 거기인 수많은 아이디어중에 하나는 성공하는데 무슨이유때문에 [3] (121.176) 12.11.23 58 0
338556 아이디어 얘기 나와서 하는 말인데 보라(14.45) 12.11.23 34 0
338555 아이디어 잘짜는 노하우 없음?ㅠㅠ미치겟네 (121.176) 12.11.23 22 0
338554 아이디어짜기가젤힘든듯. [5] (121.176) 12.11.23 81 0
338553 상상 같은 애를 보면 중고딩 때 수학 공부하면서 교과서에 밑줄 쳐 가면서 [3] 영꼰이갤로그로 이동합니다. 12.11.23 142 0
338552 그러니까 상상 쟤 말은 헤더명이나 함수명, 데이터형 같은 게 [8] 영꼰이갤로그로 이동합니다. 12.11.23 89 0
338551 신입이 면접보면 마음에 안든다니 하는 개 병신들만 봐라 [11] 보라(14.45) 12.11.23 238 0
338548 안철수 테마주였던 코스닥 업체 주가 개폭락하는데 이거 때문에 회사운영에 ㅇㄹㄴㅇㄹ(116.120) 12.11.23 64 0
338547 c언어 stdio.h 같은거 뜻 검색같은거 없음? [4] 상상(175.123) 12.11.23 100 0
338546 헉헉 프갤최고의 프로그래머 마진콜님 감사합니당 티버애니갤로그로 이동합니다. 12.11.23 57 0
338545 IT사람들의 희망! 안철수는 탈락 ㅋㅋㅋㅋㅋㅋㅋ [14] 꼬장(124.49) 12.11.23 240 0
338543 철수 아저씨 뭐고...? [2] 이모군(175.114) 12.11.23 70 0
338541 여기가 유일하다 말을걸수있는 [10] 프엔퓨(210.121) 12.11.23 115 0
338540 [비웃음 금지] 아무것도 모르고 xhtml 시작하는 초짜인데 [4] 네로시엔갤로그로 이동합니다. 12.11.23 83 0
뉴스 '남주의 첫날밤을 가져버렸다' 서현×옥택연의 달달함 속, 성현군 이태선 등장!  디시트렌드 07.03
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2