디시인사이드 갤러리

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

갤러리 본문 영역

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

ProgressBar(58.103) 2012.11.23 14:11:25
조회 36 추천 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 디지털 액세서리 기간한정 세일! 운영자 25/07/11 - -
338955 입문서적계의 레전드.jpg [3] d(125.177) 12.11.27 284 0
338954 it쪽에 평소 보기 힘든 돼지녀가 많은 이유는? [3] ㅁㄴㅇㄴㅇ(59.11) 12.11.27 120 0
338953 아 프갤재미없다 놀아줄려고해도 반응을 안함 [1] Kyle(220.244) 12.11.27 52 0
338952 갤에 안드로이드 하는놈 몇놈이냐 [5] 얼룩돼지갤로그로 이동합니다. 12.11.27 114 0
338946 갑자기 생각나는 삼촌이라는 유저의 과거 명언.list [6] Kyle(220.244) 12.11.27 186 0
338944 난 사실 gay converter다 Kyle(220.244) 12.11.27 43 0
338942 MVVM 패턴쓰는게이있음? [2] 장승업ㅂ갤로그로 이동합니다. 12.11.27 130 0
338939 형들, 싱글톤패턴으로 코드를 짰는데 좀 물어볼게 있어 [2] ㄴㄴ갤로그로 이동합니다. 12.11.27 71 0
338938 스스로의 자지를 빨려고 노렷했습니다 [2] Kyle(220.244) 12.11.27 208 0
338937 니들 중에 평균임금도 안되는 사람 있냐 ? ㅇㅇ ? [1] ☎2.51™갤로그로 이동합니다. 12.11.27 109 0
338935 나이제 뭐먹고살아야하냐 ㅡㅡㅋ [3] 장승업ㅂ갤로그로 이동합니다. 12.11.27 108 0
338934 박근혜가 여성고위공무원,여교수 비율을 늘린다네.. 백준은 멘붕올듯 [1] 마오(121.165) 12.11.27 61 0
338933 프갤에선 건질만할글이 삼일에 한개 정도밖에 안나오는듯 [1] 얼룩돼지갤로그로 이동합니다. 12.11.27 87 0
338932 매트랩에서 cross-correlation 하는거 매트랩(117.16) 12.11.27 304 0
338930 게이들아 인터넷 질문점 ㅁㅁㅁ(110.70) 12.11.27 31 0
338928 저용양-은 더이상..Naver [1] 때릴꺼야?(116.40) 12.11.27 92 0
338926 23세 남자입니다 c,c++,java 기초정도알고.. 비트가보려고합니다 [3/1] (121.129) 12.11.27 283 0
338924 Ajax 쓰는데 이게 로드를 너무 많이함.. 헬프 [3] 아까네코(210.91) 12.11.27 100 0
338920 php가 도대체 뭐가쉽냐... [1] dhrod0325(211.246) 12.11.27 129 0
338919 형님들 진지하게 인생고민중입니다 [6] (121.129) 12.11.27 129 0
338917 자자 ㅂㅈㄷㄱㅡ~ㅡ갤로그로 이동합니다. 12.11.27 24 0
338903 레노도 티버과 아니었나?/ [2] ㅋㄱ(183.96) 12.11.27 53 0
338902 백준 보면 이짤생각남 티버애니갤로그로 이동합니다. 12.11.27 39 0
338901 ㅡㅡ퇴개르ㅡㅡ ㅂㅈㄷㄱㅡ~ㅡ갤로그로 이동합니다. 12.11.27 27 0
338895 교육 잘해주고 사수있는곳 구별하려면 어떻게 함? [3] ㅁㄴ(118.36) 12.11.27 73 0
338893 노무현송 이 노래 아는 사람 여기 없겠지? 에어로홍갤로그로 이동합니다. 12.11.27 32 0
338890 ㅂㅈㄷㄱㅡ~ㅡ갤로그로 이동합니다. 12.11.27 17 0
338889 으따 역시 라도 출신 곽가 성님이 라도 사투리하나는 지대로 써분당께요 ㅋ (183.99) 12.11.27 24 0
338878 백준이 c언어 까만창 옆에 띄워놓고 갤질하고있으면 백준 부모는 낄낄낄 [2] 티버애니갤로그로 이동합니다. 12.11.27 76 0
338877 python 입문서말고 참고서같이 두고두고 보기좋은 책 추천좀 [3] 알랑방구(218.159) 12.11.27 114 0
338876 나는한다 퇴근을 [1] Adelposs갤로그로 이동합니다. 12.11.27 35 0
338872 백준같은애들이 망한인생의 표본 아니냐? 티버애니갤로그로 이동합니다. 12.11.27 30 0
338870 역시 라도 출신 곽가 성님이 라도 사투리하나는 지대로 써분당께요 ㅋㅋㅋㅋ [1] (183.99) 12.11.26 34 0
338869 백준이 애미애비는 전생에 무슨죄를 지었길래 저런걸 낳았대냐? [1] 티버애니갤로그로 이동합니다. 12.11.26 34 0
338866 나호주갔을때 기차안에서 존나 [4] ㅂㅈㄷㄱㅡ~ㅡ갤로그로 이동합니다. 12.11.26 123 0
338865 부모 등골 쯉쯉 빨아먹는 40대 백수새끼는 봐라 티버애니갤로그로 이동합니다. 12.11.26 50 0
338864 뭐하러 너네는 프로그래밍을 하고 있는거냐? ㅋㅋㅋ [6] ㅉㅉ(182.211) 12.11.26 151 0
338863 그러니까 김멋져갤로그로 이동합니다. 12.11.26 28 0
338862 안녕하세요 [1] 김멋져갤로그로 이동합니다. 12.11.26 105 0
338861 아 미친 ㅋㅋㅋㅋㅋㅋㅋ 누구는 야근하는데 [1] Adelposs갤로그로 이동합니다. 12.11.26 81 0
338860 이클립스로 초간단한 게임 만드는데 질문이 있어여 수학?개나줘갤로그로 이동합니다. 12.11.26 34 0
338858 매트랩좀 해주라요 아오시밥(121.148) 12.11.26 25 0
338857 값이 왜 이렇게 나오는지 자세하게 설명해주실분!! [1] HCCracker32갤로그로 이동합니다. 12.11.26 37 0
338854 C++] 함수 템플릿에서 궁금한점 [2] 12(59.12) 12.11.26 63 0
338852 시밝!! 밤샘 안해도댄다 백점 ㅜㅜ [2] 돌팽이.갤로그로 이동합니다. 12.11.26 85 0
338850 비주얼스튜디오 2010출력창에 나오는거 왜이런지.. [3] c언어(221.138) 12.11.26 140 0
338848 안드로이드 잘하는 형들 잇냐? [1] 가난초콜렛갤로그로 이동합니다. 12.11.26 51 0
338847 티버애니 얼룩돼지 봐라 ㅇㅇ [3] Margin Call갤로그로 이동합니다. 12.11.26 63 0
338846 C++] 클래스 템플릿에서 >>연산자 오버로딩 할때 궁금한거 [3] 12(59.12) 12.11.26 53 0
338845 ㅋㅋㅋㅋ 3개월전 내가 만든 코드보니까 ㅋㅋ [1] Adelposs갤로그로 이동합니다. 12.11.26 87 0
뉴스 지드래곤, 8월 방콕 콘서트 취소 디시트렌드 07.11
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2