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

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

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

רשימת דיסקים עם הרשאת כתיבה

מתוזמן נעוץ נעול הועבר ארכיון code613m
7 פוסטים 2 כותבים 420 צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מחובר
    א מחובר
    אבי
    כתב ב נערך לאחרונה על ידי
    #1

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

    הפונקציה הבאה מחזירה רשימה של כל הדיסקים

    string[] DriveList = Environment.GetLogicalDrives();
    for (int i = 0; i < DriveList.Length; i++)
    {
       MessageBox.Show(DriveList[i]);
    }
    

    איך אפשר לקבל אינפורמציה על כל אחד מהם?

    תודה

    פורסם במקור בפורום CODE613 ב09/02/2015 19:29 (+02:00)

    תגובה 1 תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid
      ניהול
      כתב ב נערך לאחרונה על ידי
      #2

      יאהוו אתה שואל שאלה על C#, לא על אקסס, הידד!

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

      פורסם במקור בפורום CODE613 ב09/02/2015 20:54 (+02:00)

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

        @דוד ל.ט.

        יאהוו אתה שואל שאלה על C#, לא על אקסס, הידד!

        תודה תודה..

        @דוד ל.ט.

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

        אכן יש במתודה שפע של מידע כמו שם, סוג, גודל, מקום וכדו', אבל עדיין אין שם מידע על הרשאות.

        פורסם במקור בפורום CODE613 ב09/02/2015 22:42 (+02:00)

        תגובה 1 תגובה אחרונה
        0
        • dovidD מנותק
          dovidD מנותק
          dovid
          ניהול
          כתב ב נערך לאחרונה על ידי
          #4

          אכן. חיפשתי בגוגל: C# user has directory write permission

          והתוצאות - הדרך הקלאסית זה ללכוד שגיאת הרשאה...
          אז הנה הקוד שלכאורה עושה את זה, צריך לבדוק.

          static void Main(string[] args)
          {
              foreach (var drive in DriveInfo.GetDrives())
              {
                  Console.WriteLine("{0} : {1}", drive.Name,  CheckDriveForWrite(drive));
              }
              Console.ReadLine();
          }
          
          static DriveType[] drivesToIngorn = new DriveType[] { DriveType.CDRom, DriveType.Network, DriveType.NoRootDirectory }; 
          
          public static bool CheckDriveForWrite(DriveInfo d)
          {
              return (d.IsReady && !drivesToIngorn.Contains(d.DriveType) && HasFolderWritePermission(d.RootDirectory));
          }
          
          public static bool HasFolderWritePermission(DirectoryInfo destDir)
          {
              try
              {
                  var ds = destDir.GetAccessControl();
                  return true;
              }
              catch (UnauthorizedAccessException)
              {
                  return false;
              }
          }
          

          פורסם במקור בפורום CODE613 ב10/02/2015 12:12 (+02:00)

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

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

            static void Main(string[] args)
                        {
                            foreach (var drive in DriveInfo.GetDrives())
                            {
                                Console.WriteLine("{0} : {1}", drive.Name, CheckDriveForWrite(drive));
                            }
                            Console.ReadLine();
                        }
            
                        static DriveType[] drivesToIngorn = new DriveType[] { DriveType.CDRom, DriveType.Network, DriveType.NoRootDirectory };
            
                        public static bool CheckDriveForWrite(DriveInfo d)
                        {
                            return (d.IsReady && !drivesToIngorn.Contains(d.DriveType) && HasFolderWritePermission(d.Name));
                        }
            
                        public static bool HasFolderWritePermission(string dn)
                        {
                            try
                            {
                                FileStream fs = File.Create(String.Format("{0}test.jpg", dn));
                                fs.Close();
                                File.Delete(String.Format("{0}test.jpg", dn));
                                return true;
                            }
                            catch (UnauthorizedAccessException)
                            {
                                return false;
                            }
                        }
            

            פורסם במקור בפורום CODE613 ב10/02/2015 16:24 (+02:00)

            תגובה 1 תגובה אחרונה
            0
            • dovidD מנותק
              dovidD מנותק
              dovid
              ניהול
              כתב ב נערך לאחרונה על ידי
              #6

              משונה לי מאוד הרשאות כתיבה בתיקייה אמורים לכלול יצירת קבצים חדשים. בכל מקרה אני הייתי נשכב על הכביש ולא עושה כזה דבר: לכתוב קובץ ולמחוק רק בשביל לבדוק? נורא. 😞 .

              אם אתה שותף לתחושה הרעה שלי ), בדוק אולי את הקוד הזה: http://stackoverflow.com/a/1281638/1271037

              פורסם במקור בפורום CODE613 ב10/02/2015 19:01 (+02:00)

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

                שותף בהחלט, אבל בשביל בדיקה חד פעמית בתחילת הקוד לא נשמע לי עד כדי כך נורא
                כמובן, רק אם אין פתרון אחר.

                אבדוק מה שכתבת, ואעדכן.

                פורסם במקור בפורום CODE613 ב10/02/2015 19:20 (+02:00)

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


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

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

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