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

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

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

c# | עזרה ב progressBar

מתוזמן נעוץ נעול הועבר תכנות
9 פוסטים 6 כותבים 498 צפיות 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

                    שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

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

                    בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

                    הרשמה התחברות
                    תגובה
                    • תגובה כנושא
                    התחברו כדי לפרסם תגובה
                    • מהישן לחדש
                    • מהחדש לישן
                    • הכי הרבה הצבעות


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

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

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