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

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

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

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

מתוזמן נעוץ נעול הועבר תכנות
9 פוסטים 4 כותבים 341 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • נ מנותק
    נ מנותק
    נ נח
    כתב ב נערך לאחרונה על ידי נ נח
    #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
    • 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
      • נ מנותק
        נ מנותק
        נ נח
        השיב לdovid ב נערך לאחרונה על ידי
        #3

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

        yossizY 2 תגובות תגובה אחרונה
        1
        • yossizY מחובר
          yossizY מחובר
          yossiz
          השיב לנ נח ב נערך לאחרונה על ידי
          #4

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

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

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

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

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

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

          תגובה 1 תגובה אחרונה
          6
          • 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
            • dovidD מחובר
              dovidD מחובר
              dovid ניהול
              השיב לyossiz ב נערך לאחרונה על ידי
              #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
              • נ מנותק
                נ מנותק
                נ נח
                השיב לdovid ב נערך לאחרונה על ידי
                #7

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

                תגובה 1 תגובה אחרונה
                0
                • clickoneC מנותק
                  clickoneC מנותק
                  clickone
                  השיב לdovid ב נערך לאחרונה על ידי
                  #8

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

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

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

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

                  dovidD תגובה 1 תגובה אחרונה
                  4
                  • dovidD מחובר
                    dovidD מחובר
                    dovid ניהול
                    השיב לclickone ב נערך לאחרונה על ידי
                    #9

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

                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                    תגובה 1 תגובה אחרונה
                    6
                    • dovidD dovid העביר נושא זה מ-תכנות ב-

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

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

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