디시인사이드 갤러리

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

갤러리 본문 영역

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

ProgressBar(58.103) 2012.11.23 14:11:25
조회 39 추천 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 - -
340038 가끔 유망직종 목록같은거보면 [11] ㅁㅁㅁ(211.244) 12.12.07 190 0
340037 프로그래밍에서중요한것은3가지이다! [5] 소크락텍스(211.112) 12.12.07 233 0
340036 심심이랑 진지한 대화를 하다가 [3] 아으(211.234) 12.12.07 71 0
340034 리눅스 좀 하는사람 ㅡㅡ 졸라 짜증나네 (Segmentation오류) [6] 니 코 가 뭐갤로그로 이동합니다. 12.12.07 110 0
340033 언제까지 문과버리지들에게 억압을 받아야하는가 [3] ㅁㅁㅁ(211.244) 12.12.07 103 0
340032 오전에 면접 다녀다녀왔는데 후기 [7] JSP(182.211) 12.12.07 256 0
340031 동덕여대.jpg [5] ㅁㅁㅁ(211.244) 12.12.07 250 0
340030 php는 왜 connection pooling이 안 되는 것인가 [4] 천회장(118.131) 12.12.07 76 0
340029 [아이폰취업]아이폰 계좌제 국비 아이폰취업 교육과정 [5] 한빛모바일(112.169) 12.12.07 81 0
340028 맨날 뉴스에서 ddos 언급하는거 어이없지않냐 [5] ㅁㅁㅁ(211.244) 12.12.07 107 0
340027 악플러들의 심리 상태 [6] JSP(182.211) 12.12.07 94 0
340026 근데 핸드폰 바이러스 코딩하는것도 짭잘할것같아 [7] ㅁㅁㅁ(211.244) 12.12.07 152 0
340025 미스즈 네 이년 [5] ㅁㄴㄻㄹ갤로그로 이동합니다. 12.12.07 87 0
340024 역시 구글신이 체고시다 [3] ㅁㅁㅁ(211.244) 12.12.07 122 0
340022 눈오니까 고인들이 쓸려내려오네 [3] (1.214) 12.12.07 67 0
340021 닉세탁하고 거의 2년만에 프갤오면서 개같은질문만 했네여 [2] a(175.192) 12.12.07 45 0
340020 안녕 얘들아 두번 반가워 [4] 안티푸라면갤로그로 이동합니다. 12.12.07 59 0
340019 시간차를 밀리세컨드 단위로 구하려면 어째야합니까 [9] a(175.192) 12.12.07 100 0
340018 안녕 얘들아 반가워 [6] 안티푸라면갤로그로 이동합니다. 12.12.07 93 0
340017 컴파일러가 이상해요 [4] (203.237) 12.12.07 89 0
340016 리눅스 할때 .o파일이 공유오브젝트인지 커널오브젝트인지 아니면 [4] ㅁㄴㅇ(119.202) 12.12.07 72 0
340015 고양이 키우고싶다 [3] ㅁㅁㅁ(211.244) 12.12.07 78 0
340014 vpn프로그램이.정확히 머에여? [16] 씰1갤로그로 이동합니다. 12.12.07 170 1
340013 개목걸이 - 2 [3] iljeomobolt갤로그로 이동합니다. 12.12.07 74 0
340012 개목걸이 - 1 [2] iljeomobolt갤로그로 이동합니다. 12.12.07 96 0
340011 dll 인젝션을 막을 효과적인 방법은 뭘까 [2] ㅁㅁㅁ(211.244) 12.12.07 166 0
340007 곽형 수능공부하는것같던데 잘되가나 걱정되네 [2] Kylee(220.244) 12.12.07 63 0
340006 네이버 검색어로 한글검색한거 주소로 어떻게 따오냐?? [6] ㅇㅇ(210.94) 12.12.07 66 0
340005 좆댔다 -- - 개급하다 급질문점점 [존나급함2] [4] 이랴혀(210.119) 12.12.07 65 0
340004 ASP나 sql 잘하는 놈좀 봐주세여 존나 급하다해 [4] ggg(210.119) 12.12.07 73 0
340003 인력업체는 망해야 한다 ㅋㅋㅋㅋ [8] JSP(182.211) 12.12.07 220 0
340000 프로그래밍 언어를 여자로 분류 [4] 두잇투미(59.14) 12.12.07 334 0
339999 안드로이드 이것도 코드 공개되있냥 [4] 123(112.165) 12.12.07 104 0
339998 프로그래머를 판타지세계로 분류 [4] 두잇투미(59.14) 12.12.07 426 0
339996 오늘 전공 프로젝트 마감인데 이러고 있음 [2] oxin갤로그로 이동합니다. 12.12.07 73 0
339995 흠... 근데 앞으로의 추세를 보면.. [2] 현실진단119(58.226) 12.12.07 64 0
339994 박근혜, "게임 셧다운제 확장해야 돼" [3] 끄룽갤로그로 이동합니다. 12.12.07 146 0
339993 이놈들아 SI가 노예가 없어서 힘든덴다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ [2] ㅁㄴㅇㅁㄴㅇ(59.11) 12.12.07 224 0
339990 클라우드 컴퓨팅 어떤가요? [6] PandaMango갤로그로 이동합니다. 12.12.07 127 0
339989 점들의 집합에서 두 점간 최대거리 구하기?? [2] 고랭?갤로그로 이동합니다. 12.12.07 76 0
339986 감성돋냐... [2] ㅋㄱ(183.96) 12.12.07 49 0
339984 txt 문서 싹 비우는 방법중에 좋은거없음? [3] 늘모(220.149) 12.12.07 72 0
339983 병특(산업기능요원) 짤리면 바로 군대가? [3] 노예(112.171) 12.12.07 303 0
339982 형들 뭐하나만 물어보자... [5] 홍어인간(183.97) 12.12.07 73 0
339981 대학에서 가르쳐주는 것만 따라가면 취직 할 수있냐..어떻게 살지모르겠다 [11] 좆병신이었군(1.224) 12.12.07 354 0
339979 이클립스 환경설정좀 봐줘 [4] 이세상끝에서갤로그로 이동합니다. 12.12.07 99 0
339978 자바 3개월 과정 등록 했는데 걱정이에요...ㅠㅠ 조언좀.. [9] 아으(116.120) 12.12.07 134 0
339976 C++로 이문제 금방 풀 수 있는 형 있나 [5] 괴물마초갤로그로 이동합니다. 12.12.07 144 0
339975 자바인데 콘솔창에 숫자입력하는것처럼 onclick시 처리하고싶은데 어케해 [2] 제발도와줭(220.76) 12.12.06 62 0
339974 onCLick 눌러도 반응이 없는경우는 뭐죠? [8] ㅁㄴㅇ(124.28) 12.12.06 133 0
뉴스 스테이씨 시은, 여름 감성 가득 담은 상큼한 비주얼…발랄함+청량미로 시선 집중 “I WANT IT” 디시트렌드 07.26
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2