דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. c# | עזרה ב progressBar

c# | עזרה ב progressBar

מתוזמן נעוץ נעול הועבר תכנות
9 פוסטים 6 כותבים 350 צפיות 5 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • נ מנותק
    נ מנותק
    נ נח
    כתב ב נערך לאחרונה על ידי נ נח
    #1

    שבוע טוב
    כתבתי פעולת העתקה של file.copy ואני רוצה progressbar שיתקדם לפי קצב ההעתקה.
    ראיתי בגוגל שדיברו על זה בהרבה מקומות אבל לא הצלחתי להבין איך עושים את זה.. תודה רבה

    yossizY רחמיםר 2 תגובות תגובה אחרונה
    0
    • נ נ נח

      שבוע טוב
      כתבתי פעולת העתקה של file.copy ואני רוצה progressbar שיתקדם לפי קצב ההעתקה.
      ראיתי בגוגל שדיברו על זה בהרבה מקומות אבל לא הצלחתי להבין איך עושים את זה.. תודה רבה

      yossizY מחובר
      yossizY מחובר
      yossiz
      כתב ב נערך לאחרונה על ידי
      #2

      @נ-נח התשובה הקצרה היא שאי אפשר.
      למה? כי הפונקציה File.Copy לא נותנת לנו מידע על ההתקדמות.

      התשובה הארוכה היא שאם אתה ממש רוצה להציג התקדמות תצטרך להשתמש בפונקציה CopyFileEx, אבל זה פונקציה של C - לא של #C. כדי להשתמש בו תצטרך להשתמש באפשרות של #C לקרוא לפונקציות של C שנקרא Pinvoke.
      זה נושא קצת מתקדם.

      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

      תגובה 1 תגובה אחרונה
      6
      • clickoneC מנותק
        clickoneC מנותק
        clickone
        כתב ב נערך לאחרונה על ידי
        #3

        לחילופין, ואחרי ההצעה המצויינת של @yossiz , מתוכן השאלות הכלליות שלך נראה שמה שאתה מנסה לעשות בסוף התהליך זה מנהל קבצים, ייתכן שקצת יותר מתוחכם מהרגיל ושלא יוכלו לעקוף וכו'

        אם זה אכן כך, (והעניין הוא בעיקר התוצאה ולא רק הלימוד) מה שאני מציע, זה במקביל לחפש פרוייקט של מנהל קבצים בC# בגיט, וללמוד ממנו איך לעשות.
        ואולי בכלל זו יכולה להיות נקודת התחלה יותר טובה מאשר לכתוב את הכל מאפס.
        הנה דוגמא לפרוייקט בגיט שכתוב בC# שנראה מעניין (לא בדקתי אותו - רק על סמך מה שנראה)

        (זו רק הצעה. אם העניין שלך הוא ללמוד ובכלל לא התוצאה, אז אל תתייחס למה שכתבתי)

        אין טסט כמו פרודקשן.

        המייל שלי urivpn@gmail.com

        dovidD תגובה 1 תגובה אחרונה
        4
        • clickoneC clickone

          לחילופין, ואחרי ההצעה המצויינת של @yossiz , מתוכן השאלות הכלליות שלך נראה שמה שאתה מנסה לעשות בסוף התהליך זה מנהל קבצים, ייתכן שקצת יותר מתוחכם מהרגיל ושלא יוכלו לעקוף וכו'

          אם זה אכן כך, (והעניין הוא בעיקר התוצאה ולא רק הלימוד) מה שאני מציע, זה במקביל לחפש פרוייקט של מנהל קבצים בC# בגיט, וללמוד ממנו איך לעשות.
          ואולי בכלל זו יכולה להיות נקודת התחלה יותר טובה מאשר לכתוב את הכל מאפס.
          הנה דוגמא לפרוייקט בגיט שכתוב בC# שנראה מעניין (לא בדקתי אותו - רק על סמך מה שנראה)

          (זו רק הצעה. אם העניין שלך הוא ללמוד ובכלל לא התוצאה, אז אל תתייחס למה שכתבתי)

          dovidD מחובר
          dovidD מחובר
          dovid
          ניהול
          כתב ב נערך לאחרונה על ידי
          #4

          יש אפשרות שלישית, לבצע את ההעתקה בC# על ידי קריאה מקובץ המקור וכתיבה לקובץ היעד בזרם, והצגת ההתקדמות, ככה: https://stackoverflow.com/a/22858096/1271037

          • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
          • בכל נושא אפשר ליצור קשר dovid@tchumim.com
          yossizY תגובה 1 תגובה אחרונה
          5
          • dovidD dovid

            יש אפשרות שלישית, לבצע את ההעתקה בC# על ידי קריאה מקובץ המקור וכתיבה לקובץ היעד בזרם, והצגת ההתקדמות, ככה: https://stackoverflow.com/a/22858096/1271037

            yossizY מחובר
            yossizY מחובר
            yossiz
            כתב ב נערך לאחרונה על ידי
            #5

            @dovid ראיתי את הפתרון הזה. משום מה זה מרגיש לי יותר נכון להשתמש ב-API מיועד לכך מאשר לממש בעצמך. אני תמיד מפחד ממצבים לא צפויים, וה-API המיועד יודע לטפל בהם ולפחות לזרוק שגיאות נכונות. חוץ מזה, בד"כ הוא ממוטב בצורה נכונה עבור העתקת קבצים. אני לא יודע אם אני צודק.

            @נ-נח יש עוד פתרון, שזה להשתמש ב-API שנותן לך העתקת הקבצים של סייר ווינדוס עם הצגת התקדמות שלו.
            פרטים כאן:
            https://docs.microsoft.com/en-us/archive/msdn-magazine/2005/february/net-matters-file-copy-progress-custom-thread-pools#main:~:text=you can,c#:

            📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

            upsilon01U תגובה 1 תגובה אחרונה
            5
            • yossizY yossiz

              @dovid ראיתי את הפתרון הזה. משום מה זה מרגיש לי יותר נכון להשתמש ב-API מיועד לכך מאשר לממש בעצמך. אני תמיד מפחד ממצבים לא צפויים, וה-API המיועד יודע לטפל בהם ולפחות לזרוק שגיאות נכונות. חוץ מזה, בד"כ הוא ממוטב בצורה נכונה עבור העתקת קבצים. אני לא יודע אם אני צודק.

              @נ-נח יש עוד פתרון, שזה להשתמש ב-API שנותן לך העתקת הקבצים של סייר ווינדוס עם הצגת התקדמות שלו.
              פרטים כאן:
              https://docs.microsoft.com/en-us/archive/msdn-magazine/2005/february/net-matters-file-copy-progress-custom-thread-pools#main:~:text=you can,c#:

              upsilon01U מנותק
              upsilon01U מנותק
              upsilon01
              כתב ב נערך לאחרונה על ידי upsilon01
              #6

              @yossiz
              אכן, בהעתקה בהעברה של ה windows לא תמיד מתבצעת קריאה וכתיבה של הנתונים
              לפעמים משתנה רק ה entry של הקובץ, כלומר סוג של מצביע למיקום של הקובץ
              ובפתרון של @dovid תמיד מתבצעת קריאה וכתיבה

              עריכה: אכן @yossiz התכוונתי להעברה.

              yossizY תגובה 1 תגובה אחרונה
              0
              • upsilon01U upsilon01

                @yossiz
                אכן, בהעתקה בהעברה של ה windows לא תמיד מתבצעת קריאה וכתיבה של הנתונים
                לפעמים משתנה רק ה entry של הקובץ, כלומר סוג של מצביע למיקום של הקובץ
                ובפתרון של @dovid תמיד מתבצעת קריאה וכתיבה

                עריכה: אכן @yossiz התכוונתי להעברה.

                yossizY מחובר
                yossizY מחובר
                yossiz
                כתב ב נערך לאחרונה על ידי
                #7

                @upsilon01 לא הבנתי אותך, אתה מתכוון לכאורה להעברה של קובץ, בהעתקה, במערכת הקבצים NTFS, ככל הידוע לי תמיד מתבצעת קריאה וכתיבה.

                📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                dovidD תגובה 1 תגובה אחרונה
                2
                • נ נ נח

                  שבוע טוב
                  כתבתי פעולת העתקה של file.copy ואני רוצה progressbar שיתקדם לפי קצב ההעתקה.
                  ראיתי בגוגל שדיברו על זה בהרבה מקומות אבל לא הצלחתי להבין איך עושים את זה.. תודה רבה

                  רחמיםר מנותק
                  רחמיםר מנותק
                  רחמים
                  מורחק
                  כתב ב נערך לאחרונה על ידי רחמים
                  #8

                  @נ-נח ב VB יש את זה מוכן, אז גם ב C# אפשר להשתמש בזה
                  התחביר ב VB:

                  My.Computer.FileSystem.CopyDirectory(X, Y, FileIO.UIOption.AllDialogs)
                  

                  הכתובת המלאה של הפונקציה:

                  Microsoft.VisualBasic.MyServices.FileSystemProxy.CopyDirectory(String, String, UIOption, UICancelOption) 
                  

                  ותוכל לקרוא לפונקציה זו גם בC# על ידי רפרנס לDLL המתאים.

                  תגובה 1 תגובה אחרונה
                  5
                  • yossizY yossiz

                    @upsilon01 לא הבנתי אותך, אתה מתכוון לכאורה להעברה של קובץ, בהעתקה, במערכת הקבצים NTFS, ככל הידוע לי תמיד מתבצעת קריאה וכתיבה.

                    dovidD מחובר
                    dovidD מחובר
                    dovid
                    ניהול
                    כתב ב נערך לאחרונה על ידי dovid
                    #9

                    @yossiz הוא התכוון בהעברה.
                    (אתה חושב שאני ממליץ על הפתרון שאמרתי? אז תחשוב...).

                    • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                    • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                    תגובה 1 תגובה אחרונה
                    1
                    • dovidD dovid העביר נושא זה מ-תכנות ב-
                    תגובה
                    • תגובה כנושא
                    התחברו כדי לפרסם תגובה
                    • מהישן לחדש
                    • מהחדש לישן
                    • הכי הרבה הצבעות


                    בא תתחבר לדף היומי!
                    • התחברות

                    • אין לך חשבון עדיין? הרשמה

                    • התחברו או הירשמו כדי לחפש.
                    • פוסט ראשון
                      פוסט אחרון
                    0
                    • דף הבית
                    • קטגוריות
                    • פוסטים אחרונים
                    • משתמשים
                    • חיפוש
                    • חוקי הפורום