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

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

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

עזרה | הוספת תכונות לתיקיה ב c#

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

    שלום וברכה
    מישהו יודע איך להוסיף תכונות לתיקיה בלי שזה ימחק את התכונות הקיימות?
    זה מה שכתבתי

    DirectoryInfo di = Directory.CreateDirectory(path);
    if (checkedListBox1.CheckedItems.Count != 0)
    {
        di.Attributes = FileAttributes.Directory;
        if (checkedListBox1.SelectedIndex == 0)
            di.Attributes = FileAttributes.ReadOnly;
        if (checkedListBox1.SelectedIndex == 1)
            di.Attributes = FileAttributes.Hidden;
        if (checkedListBox1.SelectedIndex == 2)
            di.Attributes = FileAttributes.System;
    }
    

    תודה רבה

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

      שלום וברכה
      מישהו יודע איך להוסיף תכונות לתיקיה בלי שזה ימחק את התכונות הקיימות?
      זה מה שכתבתי

      DirectoryInfo di = Directory.CreateDirectory(path);
      if (checkedListBox1.CheckedItems.Count != 0)
      {
          di.Attributes = FileAttributes.Directory;
          if (checkedListBox1.SelectedIndex == 0)
              di.Attributes = FileAttributes.ReadOnly;
          if (checkedListBox1.SelectedIndex == 1)
              di.Attributes = FileAttributes.Hidden;
          if (checkedListBox1.SelectedIndex == 2)
              di.Attributes = FileAttributes.System;
      }
      

      תודה רבה

      dovidD
      dovidD
      dovid
      ניהול
      כתב ב נערך לאחרונה על ידי
      #2
          if (checkedListBox1.SelectedIndex == 0)
              di.Attributes = di.Attributes | FileAttributes.ReadOnly;
          if (checkedListBox1.SelectedIndex == 1)
              di.Attributes = di.Attributes | FileAttributes.Hidden;
          if (checkedListBox1.SelectedIndex == 2)
              di.Attributes = di.Attributes | FileAttributes.System;
      

      או יותר קצר:

          if (checkedListBox1.SelectedIndex == 0)
              di.Attributes |= FileAttributes.ReadOnly;
          else if (checkedListBox1.SelectedIndex == 1)
              di.Attributes |= FileAttributes.Hidden;
          else if (checkedListBox1.SelectedIndex == 2)
              di.Attributes |= FileAttributes.System;
      

      הוספתי else לקוד סתם כחינוך על הדרך.
      בהצלחה!

      • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
      • בכל נושא אפשר ליצור קשר dovid@tchumim.com
      נ תגובה 1 תגובה אחרונה
      4
      • dovidD dovid
            if (checkedListBox1.SelectedIndex == 0)
                di.Attributes = di.Attributes | FileAttributes.ReadOnly;
            if (checkedListBox1.SelectedIndex == 1)
                di.Attributes = di.Attributes | FileAttributes.Hidden;
            if (checkedListBox1.SelectedIndex == 2)
                di.Attributes = di.Attributes | FileAttributes.System;
        

        או יותר קצר:

            if (checkedListBox1.SelectedIndex == 0)
                di.Attributes |= FileAttributes.ReadOnly;
            else if (checkedListBox1.SelectedIndex == 1)
                di.Attributes |= FileAttributes.Hidden;
            else if (checkedListBox1.SelectedIndex == 2)
                di.Attributes |= FileAttributes.System;
        

        הוספתי else לקוד סתם כחינוך על הדרך.
        בהצלחה!

        נ
        נ
        נ נח
        כתב ב נערך לאחרונה על ידי
        #3

        @dovid עדיין לא עובד..
        אגב else if לא מתאים כאן בגלל שזה לא רק אחד מהם, זה יכול להיות שלושתם. עדיף רק if
        5e5a467b-5e51-4145-a25e-26e799d64d3c-image.png

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

          @dovid עדיין לא עובד..
          אגב else if לא מתאים כאן בגלל שזה לא רק אחד מהם, זה יכול להיות שלושתם. עדיף רק if
          5e5a467b-5e51-4145-a25e-26e799d64d3c-image.png

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

          @נ-נח אמר בעזרה | הוספת תכונות לתיקיה ב c#:

          עדיין לא עובד..

          "לא עובד" לא עוזר לאף אחד. למה צפית ומה קיבלת?

          אגב else if לא מתאים כאן בגלל שזה לא רק אחד מהם, זה יכול להיות שלושתם. עדיף רק if

          אין דבר כזה שערך מסוג int יש לו כמה ערכים 😕

          📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה
          👈 רוצים כתובת מייל בעברית? כנסו למייל.קום 👉

          תגובה 1 תגובה אחרונה
          6
          • נ נ נח

            @dovid עדיין לא עובד..
            אגב else if לא מתאים כאן בגלל שזה לא רק אחד מהם, זה יכול להיות שלושתם. עדיף רק if
            5e5a467b-5e51-4145-a25e-26e799d64d3c-image.png

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

            @נ-נח מתוך התיעוד:

            If the SelectionMode property of the ListBox is set to either SelectionMode.MultiSimple or SelectionMode.MultiExtended (which indicates a multiple-selection ListBox) and multiple items are selected in the list, this property can return the index to any selected item.

            To retrieve a collection containing the indexes of all selected items in a multiple-selection ListBox, use the SelectedIndices property. If you want to obtain the item that is currently selected in the ListBox, use the SelectedItem property. In addition, you can use the SelectedItems property to obtain all the selected items in a multiple-selection ListBox.

            ובעברית פשוטה, "אם אפשרת בחירות מרובות אתה אמור להשתמש ב-SelectedIndices (מחזיר אוסף של מספרים) או ב-SelectedItems (מחזיר אוסף של פריטים), ולא להשתמש ב-SelectedIndex

            📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה
            👈 רוצים כתובת מייל בעברית? כנסו למייל.קום 👉

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

              @נ-נח מתוך התיעוד:

              If the SelectionMode property of the ListBox is set to either SelectionMode.MultiSimple or SelectionMode.MultiExtended (which indicates a multiple-selection ListBox) and multiple items are selected in the list, this property can return the index to any selected item.

              To retrieve a collection containing the indexes of all selected items in a multiple-selection ListBox, use the SelectedIndices property. If you want to obtain the item that is currently selected in the ListBox, use the SelectedItem property. In addition, you can use the SelectedItems property to obtain all the selected items in a multiple-selection ListBox.

              ובעברית פשוטה, "אם אפשרת בחירות מרובות אתה אמור להשתמש ב-SelectedIndices (מחזיר אוסף של מספרים) או ב-SelectedItems (מחזיר אוסף של פריטים), ולא להשתמש ב-SelectedIndex

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

              @yossiz הוא משתמש בCheckedListBox

              @נ-נח כפי ש@yossiz אמר הבעיה היא שאתה לא יודע איך לבדוק מה בחור.
              הדרך לגשת לפריטים הבחורים בCheckedListBox היא או ע"י CheckedIndices (אינדקסי מיקום) או ע"י CheckedItems (הפריטים עצמם).
              אתה אמור לכתוב משהו כזה:

                  di.Attributes = FileAttributes.Directory;
                  foreach (var element in checkedListBox1.CheckedItems)
                  {
                      if (element == "תיקיה לקריאה בלבד")
                          di.Attributes = FileAttributes.ReadOnly;
                      else if (element == "תיקיה מוסתרת")
                          di.Attributes = FileAttributes.Hidden;
                      else if (element == "תיקיית מערכת")
                          di.Attributes = FileAttributes.System;
                  }
              

              זה לא הכי חכם, אבל זה כנראה יעבוד.

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

                @yossiz הוא משתמש בCheckedListBox

                @נ-נח כפי ש@yossiz אמר הבעיה היא שאתה לא יודע איך לבדוק מה בחור.
                הדרך לגשת לפריטים הבחורים בCheckedListBox היא או ע"י CheckedIndices (אינדקסי מיקום) או ע"י CheckedItems (הפריטים עצמם).
                אתה אמור לכתוב משהו כזה:

                    di.Attributes = FileAttributes.Directory;
                    foreach (var element in checkedListBox1.CheckedItems)
                    {
                        if (element == "תיקיה לקריאה בלבד")
                            di.Attributes = FileAttributes.ReadOnly;
                        else if (element == "תיקיה מוסתרת")
                            di.Attributes = FileAttributes.Hidden;
                        else if (element == "תיקיית מערכת")
                            di.Attributes = FileAttributes.System;
                    }
                

                זה לא הכי חכם, אבל זה כנראה יעבוד.

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

                @dovid עובד לי מצוין!! תזכו למצוות

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

                  @yossiz הוא משתמש בCheckedListBox

                  @נ-נח כפי ש@yossiz אמר הבעיה היא שאתה לא יודע איך לבדוק מה בחור.
                  הדרך לגשת לפריטים הבחורים בCheckedListBox היא או ע"י CheckedIndices (אינדקסי מיקום) או ע"י CheckedItems (הפריטים עצמם).
                  אתה אמור לכתוב משהו כזה:

                      di.Attributes = FileAttributes.Directory;
                      foreach (var element in checkedListBox1.CheckedItems)
                      {
                          if (element == "תיקיה לקריאה בלבד")
                              di.Attributes = FileAttributes.ReadOnly;
                          else if (element == "תיקיה מוסתרת")
                              di.Attributes = FileAttributes.Hidden;
                          else if (element == "תיקיית מערכת")
                              di.Attributes = FileAttributes.System;
                      }
                  

                  זה לא הכי חכם, אבל זה כנראה יעבוד.

                  clickoneC
                  clickoneC
                  clickone
                  כתב ב נערך לאחרונה על ידי
                  #8

                  @dovid שאלה מהצד שקשורה לנושא:

                  למה אתה מעדיף else if ולא switch?
                  לא יותר אלגנטי וברור?
                  (נראה לי שב code complete ההמלצה היא ללכת לכיוון של switch במידה והשפה והמקרה מאפשרים את זה, כדי שלא יהיה קוד ספגטי)

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

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

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

                    @dovid שאלה מהצד שקשורה לנושא:

                    למה אתה מעדיף else if ולא switch?
                    לא יותר אלגנטי וברור?
                    (נראה לי שב code complete ההמלצה היא ללכת לכיוון של switch במידה והשפה והמקרה מאפשרים את זה, כדי שלא יהיה קוד ספגטי)

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

                    @clickone
                    א. אני לא כתבתי את הקוד, הוספתי מילה רק כדי שהוא ייחשב לתקין
                    ב. בהחלט הייתי בוחר בif.
                    ראשית, בגלל שזה רק שלושה אפשרויות.
                    הקוד קומפליט לא כותב מתי זה מתחיל להיות כבד להשתמש בswitch
                    אבל ברור לכולנו שלשני שורות זה מפגר, אז תרחיב את זה לארבע...
                    שנית, אני לא אוהב את הswitch של c# בגלל המילה break
                    מתי אני כן משתמש בו? כשיש מצב של כמה תנאים נכונים או כשיש ביצוע זהה לכמה תנאים (במקום הרבה || אז עושים switch ללא break). היום שכללו מאוד את הswitch והוא הדרך הכי אלגנטית בבדיקת טיפוסים ועוד, אבל לא התרגלתי אליו עדיין.

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

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

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

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

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


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

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

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