디시인사이드 갤러리

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

갤러리 본문 영역

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

ProgressBar(58.103) 2012.11.23 14:11:25
조회 37 추천 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/14 - -
AD 휴대폰 액세서리 SALE 운영자 25/07/15 - -
339373 소켓으로 간단한 온라인게임 만들고싶은데요 [1] ㄷㄷ(110.70) 12.11.30 65 0
339372 화려한 구로IT단지, 여전히 근로기준법 위반 (경향 12.11.30) [1] 밍키맨(112.171) 12.11.30 117 0
339371 [MD포토] 별 '내사랑 하하의 달콤 키스' 에어로홍갤로그로 이동합니다. 12.11.30 30 0
339370 정보처리기사책으로 산업기사 공부돼냐? [1] ㅁㅇㄴㅁ(115.161) 12.11.30 59 0
339369 면접시간이 30분이었는데 1시간 가까이 봤음.. 뭘까..? [3] ㅁㄴㅇㄹ(121.190) 12.11.30 163 0
339368 씨팔 내일도 출근이다 [2] ??(123.228) 12.11.30 60 0
339366 기획자랑 의사 소통 안되면 기획자 잘못이냐? 프로그래머 잘못이냐? [3] dd(121.133) 12.11.30 140 0
339364 형들 얘 먼소리하는거야? [5] 논새비어갤로그로 이동합니다. 12.11.30 110 0
339362 책잘못사서그런데 봐주셈 [2] ㅇㅁㄴ(211.245) 12.11.30 57 0
339361 횽들 자바 질문있는데 .. (디테일 하게 올려봄) [9] 자바(1.250) 12.11.30 80 0
339357 나 프로그래밍 배우려고 하는 게이인데요 [2] 입력하시게갤로그로 이동합니다. 12.11.30 84 0
339356 횽들 자바 질문있는데 [2] 자바(1.250) 12.11.30 46 0
339355 알고리즘 퀴즈 [6] ELUU갤로그로 이동합니다. 12.11.30 122 0
339354 프갤현자님들 자바스크립트 입문서적점 [1] 마루■갤로그로 이동합니다. 12.11.30 55 0
339353 롱자지 로켓트!~ 룰루루 [1] Kyle(220.244) 12.11.30 40 0
339351 프갤러님들 C++입문서좀 추천해주세여 [4] 사얏갤로그로 이동합니다. 12.11.30 88 0
339349 node.js에서 멀티쓰레드 운운하는 놈들은 뭐냐 [4] 천회장(118.131) 12.11.30 144 0
339348 흔한 웹프 모집요강 [1] 웹웩(182.211) 12.11.30 122 0
339347 이 게임 만들수있는분? winapi 활용해서 [4] asdasd(164.125) 12.11.30 76 0
339346 웹은 왜이리 공부해야 할 것이 많죠????!!!! [1] 웹웩(182.211) 12.11.30 95 0
339345 COM이 뭐에요 [4] (175.192) 12.11.30 77 0
339344 무슨놈의 회의가.. [2] fm100(175.223) 12.11.30 65 0
339343 저 왜이렇게 못되고 ㅄ이져? [2] Kyle(220.244) 12.11.30 68 0
339342 sql(db) 숫자 0 표현 하는 방법 아시는분 [5] sql(211.220) 12.11.30 62 0
339340 자바 퀴즈 1 [2] Kyle(220.244) 12.11.30 75 0
339339 java 에서 db 쿼리 후 결과값 위치에 대한 질문!! [1] iljeomobolt갤로그로 이동합니다. 12.11.30 39 0
339338 [java] 형들, 메인 함수도 serializable 할 수 있어? [15] Prographer갤로그로 이동합니다. 12.11.30 118 0
339337 Eclipse 적응중인데 이거 Font 어디에 옵션있음? [4] 초딩6(59.13) 12.11.30 111 0
339336 jQuery 하려면 자바스크립 필수입니까? [2] Kyle(220.244) 12.11.30 88 0
339335 우리나라의 프로그래밍 현실은 잘 알았습니다. 그럼 외국은? r(175.192) 12.11.30 69 0
339334 프갤러님들 우분투 살리기에 동참해주십쇼 [14] 구루구루(119.64) 12.11.30 191 2
339332 자바스크립트에서 undefined 값 수정못하게 하는 방법 없나 [4] ㅁㄴㅇ(119.202) 12.11.30 58 0
339331 node.js는 15000개 이상의 사이트에서 사용되고 있다. [7] 피코피코갤로그로 이동합니다. 12.11.30 214 0
339330 내일 자바카페 세미나 가는사람 손 [2] 피코피코갤로그로 이동합니다. 12.11.30 83 0
339329 아마존 자주 이용하는 호구새키들 있냐? 내가 프라임 계정 만들어준다 초딩6(59.13) 12.11.30 49 0
339326 보안업계라는 게 안랩 같은데만 있는게 아니잖니? [3] 영꼰이갤로그로 이동합니다. 12.11.30 172 0
339325 형들 진짜급한질문! [1] 흑흑(210.125) 12.11.30 40 0
339324 아이패드를 학교에서 교과서 대용으로 쓴다고 했던거 같은데 [1] JSP(182.211) 12.11.30 64 0
339323 부왁 아이패드 미니 64기가 사려고 했더니 컴이랑 비슷하네 [1] JSP(182.211) 12.11.30 71 0
339322 SAVE 파일 아무리 수정해도 어려웠던 DOS 게임 있잖냐. [8] ☎2.51™갤로그로 이동합니다. 12.11.30 125 0
339320 삼국지3 돈 만땅으로 즐기던 시절 [1] 이모군(175.114) 12.11.30 77 0
339318 공돌이들은 자기 홍보를 할 줄 모른다. JSP(182.211) 12.11.30 67 0
339317 JYJ 쟤들 좀 웃기네 이모군(175.114) 12.11.30 43 0
339316 일어는 재밌습니다. 얼룩돼지갤로그로 이동합니다. 12.11.30 54 0
339313 게임못한지 몇주짼지 모르겟다 얼룩돼지갤로그로 이동합니다. 12.11.30 33 0
339312 다들 불꽃코딩하고있냐? 불금 칼퇴를 위해서? [2] 얼룩돼지갤로그로 이동합니다. 12.11.30 115 0
339311 오늘도 여전히 프갤답군. [3] 얼룩돼지갤로그로 이동합니다. 12.11.30 76 0
339306 6년차 연봉 자바 이거 너무 적은거 아닌가? [10] ㅁㄴㅇㅁㄴㅇㄴㅇ(59.11) 12.11.30 484 0
339303 아..자바 이거 머하는거냐 나 초본대 제발 알려줘 [2] 쒸퐐좌봐(210.93) 12.11.30 71 0
339302 아 눙물난다 [1] 아이유찡(106.182) 12.11.30 53 0
뉴스 [조선의 사랑꾼] ‘개그맨 부부 25호’ 김지민·김준호, 드디어 결혼식 공개! 김지민, ‘일일 혼주’ 김대희와 입장…퇴장은 ‘개그콘서트 OST’  디시트렌드 10:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2