디시인사이드 갤러리

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

갤러리 본문 영역

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

ProgressBar(58.103) 2012.11.23 14:11:25
조회 34 추천 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 - -
339148 arclayer님 제발 한번만 해주시면안될까요? [2] 징기스칸4(125.182) 12.11.28 48 0
339147 자바로 스케쥴러나 전자다이어리 같은 프로그램을 만들려는데요 [4] 최강의젖뉴비(121.183) 12.11.28 86 0
339146 노트북 해상도 1366이면 코딩하는데 불편함? [9] 놋놋(218.209) 12.11.28 337 0
339145 수학적 능력이 코딩 능력에 어느정도 영향미치는거 같아? [12] 열정(1.250) 12.11.28 259 0
339144 여기 더블클릭하면 창이 닫힌다.. [4] ㅋㄱ(183.96) 12.11.28 81 0
339143 수학못하고 프로그래밍에 재능이 없어도 [14] 헤헤(210.91) 12.11.28 251 0
339142 형들 C언어에서 동적할당으로 만들수있는 배열의 인덱스 크기가 몇이야? [3] 라솔갤로그로 이동합니다. 12.11.28 109 0
339141 안드로이드 게임 도전. [4] 나혼자(112.159) 12.11.28 126 0
339140 암호화 모듈 개발해 본 놈 있냐? [2] ㅁㄴㄻㄹ갤로그로 이동합니다. 12.11.28 82 0
339139 싱글게임 제한좀 깨주실 능력자횽분구합니다 ㅠㅠ [6] 징기스칸4(125.182) 12.11.28 51 0
339138 윈도폰, 바다폰 용 앱 만들면 블루오션? 아님 그냥 개뻘짓? 영꼰이갤로그로 이동합니다. 12.11.28 75 0
339137 애플은 망해야 합니다. [1] 영꼰이갤로그로 이동합니다. 12.11.28 65 0
339136 ssonacy님 제발 제부탁좀들어주세요 [2] 징기스칸4(125.182) 12.11.28 63 0
339135 노가다는 해도 IT는 하지마라 [3] ㅁㄴㅇㄹ(123.98) 12.11.28 242 0
339133 형들 이직관련 고민상담좀 부탁할게 [1] 고기고기(219.240) 12.11.28 98 0
339132 포탈에서 동방신기 이제야 2명으로 나오네 등본미귀(59.14) 12.11.28 43 0
339131 프선생님.... C언어가 하고싶어요 [9] 발성돌이갤로그로 이동합니다. 12.11.28 117 0
339130 싱글 게임 제한 해제좀해주세요 [6] 징기스칸4(125.182) 12.11.28 55 0
339128 카이스트대학원 vs 삼성 어디가는게 win? [22] 곧졸어(121.150) 12.11.28 652 0
339126 진지하게 재수해서 4년제노리는게 나을까 아니면 전문대갈까.. [6] 언데드로드갤로그로 이동합니다. 12.11.28 139 0
339125 어장관리녀의 목적은 뭐냐?????????? (125.177) 12.11.28 55 0
339124 리얼 고딩때 학교에 배트남애 성이 phuck [1] Kyle(220.244) 12.11.28 64 0
339123 맥 미니 사면서 느낀것 [3] ㅁㄴㅇ(119.202) 12.11.28 117 0
339122 아.. 나란남자 .. ssonacy갤로그로 이동합니다. 12.11.28 59 0
339121 여자는 차에 약하다 이런 하나면 너도 챔피언 선수(182.211) 12.11.28 54 0
339118 한국에서 잘나가는 법. [1] 연애(119.201) 12.11.28 73 0
339117 프로그래머들 많은 사이트 이름 찾는다.. [4] 언데드로드갤로그로 이동합니다. 12.11.28 152 0
339115 난 세상에서 여자가 제일 쉬웠어요 [2] 연애(119.201) 12.11.28 64 0
339111 맥 아이폰 시뮬레이터 [4] ㅁㄴㅇ(119.202) 12.11.28 113 0
339109 디씨는 오래할게 못돼. ㅇㅇ [1] ☎2.51™갤로그로 이동합니다. 12.11.28 87 0
339108 프로그래밍갤 성님덜은 컴퓨터 클린하게 사용하심? [3] ㄹㄹ(59.8) 12.11.28 99 0
339107 형 나 연애 상담좀 부탁드려요 [10] 플글맨(118.34) 12.11.28 91 0
339106 네이버 말고 뭐로 메인으로 두냐 [5] asd(59.11) 12.11.28 73 0
339105 c언어 다시 복습 좀 하려고 하는데 책 추천좀 [1] (125.177) 12.11.28 70 0
339104 아 레알 컴퓨터 프로그램개 빡치네 [3] 디시안에서살다갤로그로 이동합니다. 12.11.28 78 0
339103 형들 이 소스좀 봐줄래? [4] 그딴건없구염'ㅡ&am.갤로그로 이동합니다. 12.11.28 69 0
339102 개발자들은 이것을 잊지 말자 jsp(182.211) 12.11.28 93 1
339101 형들은 코딩짤때 무슨 방법으로해 ? [7] 열정(1.250) 12.11.28 173 0
339100 한국 IT의 씹망은 정통부, 과기부 폐지만 봐도 알수 있지 않냐? jsp(182.211) 12.11.28 61 0
339099 연세디지털게임교육원 우짤까.. [2] 뿡빵뿡빵(14.43) 12.11.28 193 0
339098 쩐다. ☎2.51™갤로그로 이동합니다. 12.11.28 45 0
339096 네이버 이해진이 뭐라고 했냐면 [3] asd(59.11) 12.11.28 105 0
339095 한국 it 정말 씹망이네 [1] asd(59.11) 12.11.28 118 0
339093 대괄호를 밑에서 여는게 낳냐 옆에서 여는게 낳냐 [8] (211.246) 12.11.28 105 0
339092 이 소스코드 좀 봐줘 도와줘 ㅜㅜ [1] 개르개르(203.226) 12.11.28 66 0
339091 순위정하는 소스가 어떻게 될까? [3] 얼룩돼지갤로그로 이동합니다. 12.11.28 332 0
339090 성인 어플 모델 구하려면 개쉽게 구할 듯. [4] 영꼰이갤로그로 이동합니다. 12.11.28 119 0
339089 주인집 할아버지 손녀가 섹시한 눈빛으로 처다봄 [3] Kyle(220.244) 12.11.28 111 0
339088 책사려고ㅗ ㅋㅌㅊ(1.220) 12.11.28 46 0
339087 싱글 게임 제한좀 해제해주실분 [1] 징기스칸4(125.182) 12.11.28 38 0
뉴스 걸스데이 민아, 배우 온주완과 11월 결혼 디시트렌드 07.04
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2