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

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

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

שאלה: איך עושים דחיסה לקובץ בודד בC#?

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

    שאלה: איך עושים דחיסה לקבצים בC#?
    כלומר רצוני להשתמש עם קבצים מרובים בתוכנה שלי ואני רוצה לעשות דחיסה כדי שלא יתפסו מקום מאידך אני רוצה שיהיה לי גישה מהירה לקבצים.
    אז חשבתי אולי שצריך לעשות דחיסה לקבצים בודדים.
    אשמח לשמוע מה חחות דעתכם.
    וגם איך עושים דחיסה בc# כי אין לי מושג.

    גמ"ח מידע מחשבים ואופיס

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

      זה תלוי באיזה תדירות צריך לגשת לקובץ.
      דחיסה בC# נעשית על ידי זרם דוחס/מחלץ, ככה:

      public static void Compress(string str, string fileName)
      {
          var bytes = Encoding.UTF8.GetBytes(str);
      
          using (var fileOutput = new FileStream(fileName, FileMode.Create))
          using (var input = new MemoryStream(bytes))
          using (var compressor = new GZipStream(fileOutput, CompressionLevel.SmallestSize))
              input.CopyTo(compressor);
      }
      
      public static string Decompress(string fileName)
      {
          using (var inputFile = new FileStream(fileName, FileMode.Open))
          using (var decompressor = new GZipStream(inputFile, CompressionMode.Decompress))
          using (var textDecoder = new StreamReader(decompressor, Encoding.UTF8))
              return textDecoder.ReadToEnd();
      }
      

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

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

      pcinfogmachP תגובה 1 תגובה אחרונה
      4
      • pcinfogmachP לא נמצא
        pcinfogmachP לא נמצא
        pcinfogmach
        השיב לdovid ב נערך לאחרונה על ידי
        #3

        @dovid
        במקום

        using (var compressor = new GZipStream(fileOutput, CompressionLevel.SmallestSize))
        

        יש לעשות

        using (var compressor = new GZipStream(fileOutput, CompressionLevel.Optimal))
        

        גמ"ח מידע מחשבים ואופיס

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

          @pcinfogmach אולי ככה יוצא לפי הצרכים שלך,
          אבל לא בהכרח לפי השאלה שלך.

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

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

          pcinfogmachP תגובה 1 תגובה אחרונה
          1
          • pcinfogmachP לא נמצא
            pcinfogmachP לא נמצא
            pcinfogmach
            השיב לdovid ב נערך לאחרונה על ידי pcinfogmach
            #5

            @dovid
            הקוד שלך עשה שגיאה ולכן תיקנתי ואז לא היה שגיאה אולי חסר לי איזהו רפרנס?
            (אגב מה באמת ההבדל בין optimal ל-smallestsize?)

            גמ"ח מידע מחשבים ואופיס

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

              @pcinfogmach כתב בשאלה: איך עושים דחיסה לקובץ בודד בC#?:

              @dovid
              הקוד שלך עשה שגיאה ולכן תיקנתי ואז לא היה שגיאה אולי חסר לי איזהו רפרנס?
              (אגב מה באמת ההבדל בין optimal ל-smallestsize?)

              מעניין, אצלי עובד.
              Optimal זה איזון (זמן לעומת יעילות דחיסה), בעוד SmallestSize אומר להתחשב רק ביעילות דחיסה.

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

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

              תגובה 1 תגובה אחרונה
              1
              • WheneverW מנותק
                WheneverW מנותק
                Whenever
                כתב ב נערך לאחרונה על ידי Whenever
                #7

                אולי אתם מנסים לדחוס קבצים שונים?
                לא מבין בזה בכלל אבל אולי זה גורם לשגיאה?

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

                  @Whenever מתודת הדחיסה שכתבתי מקבלת כפרמטר טקסט ולא קובץ, אז לא שייך פה סוגים שונים.
                  חוץ מזה אני לא חושב שמתודת הדחיסה משופעת/יודעת על מה היא דוחסת, זו דחיסה ברמת בתים ובתים יש בכל סוג קובץ.

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

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

                  תגובה 1 תגובה אחרונה
                  2
                  • משתמש תמיםמ מנותק
                    משתמש תמיםמ מנותק
                    משתמש תמים
                    כתב ב נערך לאחרונה על ידי משתמש תמים
                    #9

                    @dovid לדעתי ההסבר זה הגרסה של .net שהוא משתמש CompressionLevel.SmallestSize לא היה קיים בגרסאות ישנות
                    עריכה: ליתר דיוק הוא הוצג בדוטנט 6 בדוטנט 5 הוא עוד לא היה קיים

                    עזרתי לך? תראה לי את זה על ידי לחיצה על ה^ בצד שמאל למטה.

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

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

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

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