תחומים
    • הרשמה
    • התחברות
    • חיפוש
    • קטגוריות
    • פוסטים אחרונים
    • משתמשים
    • חיפוש
    חוקי הפורום

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

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

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

      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;
      }
      

      תודה רבה

      dovid תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • dovid
        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 לקוד סתם כחינוך על הדרך.
        בהצלחה!

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

        נ נח תגובה 1 תגובה אחרונה תגובה ציטוט 4
        • נ נח
          נ נח @dovid נערך לאחרונה על ידי

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

          yossiz 2 תגובות תגובה אחרונה תגובה ציטוט 1
          • yossiz
            yossiz @נ נח נערך לאחרונה על ידי

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

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

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

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

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

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

            תגובה 1 תגובה אחרונה תגובה ציטוט 6
            • yossiz
              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

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

              dovid תגובה 1 תגובה אחרונה תגובה ציטוט 5
              • dovid
                dovid ניהול @yossiz נערך לאחרונה על ידי

                @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

                נ נח clickone 2 תגובות תגובה אחרונה תגובה ציטוט 6
                • נ נח
                  נ נח @dovid נערך לאחרונה על ידי

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

                  תגובה 1 תגובה אחרונה תגובה ציטוט 0
                  • clickone
                    clickone @dovid נערך לאחרונה על ידי

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

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

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

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

                    dovid תגובה 1 תגובה אחרונה תגובה ציטוט 4
                    • dovid
                      dovid ניהול @clickone נערך לאחרונה על ידי

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

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

                      תגובה 1 תגובה אחרונה תגובה ציטוט 6
                      • הועבר מ תכנות ע"י  dovid dovid 
                      • 1 / 1
                      • פוסט ראשון
                        פוסט אחרון
                      בא תתחבר לדף היומי!