27 Ekim 2026 Salı

50-100 GB डिस्क स्पेस सुरक्षित रूप से खाली करें: .NET, गेम और डेस्कटॉप डेवलपर्स के लिए संपूर्ण गाइड




50-100 GB डिस्क स्पेस सुरक्षित रूप से खाली करें: .NET, गेम और डेस्कटॉप डेवलपर्स के लिए संपूर्ण गाइड

Windows पर काम करने वाले हर सॉफ़्टवेयर और गेम डेवलपर को कभी न कभी उस डरावनी सुबह का सामना करना पड़ता है: आप अपना कंप्यूटर चालू करते हैं, अपना IDE खोलते हैं, और अचानक Windows चेतावनी देता है—आपके 1 TB NVMe SSD पर 2 GB से भी कम खाली स्थान बचा है।

आपने कोई बड़ी वीडियो फ़ाइलें डाउनलोड नहीं की हैं और न ही 100 GB का कोई नया गेम इंस्टॉल किया है। तो सारा स्थान कहाँ गायब हो गया?

.NET 8/9, MonoGame, Android, और Microsoft Store (MSIX/WAP पैकेजिंग) पर काम करने वाले एक इंडी गेम और डेस्कटॉप डेवलपर के रूप में मैंने इस समस्या की जाँच की। स्वचालित स्कैन से पता चला कि 68 GB से अधिक स्थान केवल अप्रचलित बिल्ड आर्टिफैक्ट्स, पुराने स्टोर पैकेज और NuGet कैश द्वारा घेरा गया था।

इस गाइड में, हम समझेंगे कि आधुनिक टूलचेन इतना अधिक स्थान क्यों घेरते हैं, इन फ़ोल्डरों को हटाना 100% सुरक्षित क्यों है, और एक-क्लिक में दर्जनों गीगाबाइट खाली करने के लिए तैयार PowerShell और Batch स्क्रिप्ट साझा करेंगे।


1. डिस्क स्पेस भरने के मुख्य कारण

जब आप क्रॉस-प्लेटफ़ॉर्म प्रोजेक्ट्स को कंपाइल करते हैं, तो टूल्स हर चरण पर फ़ाइलों की प्रतियाँ बनाते हैं:

flowchart TD
    subgraph "प्रोजेक्ट कार्यक्षेत्र"
        Code["सोर्स कोड (.cs, .xaml, .json)\n(सुरक्षित - कुछ MB)"]
        Assets["मूल एसेट्स (PNG, OGG, Shaders)\n(सुरक्षित)"]
        Git[".git इतिहास\n(सुरक्षित)"]
        
        BinObj["bin और obj फ़ोल्डर्स\n(मध्यवर्ती DLLs, सिंबल)\n[30 - 60 GB]"]
        AppPackages["WAP / MSIX AppPackages\n(पुराने स्टोर पैकेज)\n[5 - 20 GB]"]
    end

    subgraph "सिस्टम और ग्लोबल कैश"
        NuGet["%USERPROFILE%\\.nuget\\packages\n(ग्लोबल पैकेज कैश)\n[10 - 20 GB]"]
        Temp["%LOCALAPPDATA%\\Temp\n(अस्थायी कंपाइलर फ़ाइलें)\n[3 - 10 GB]"]
    end

    style BinObj fill:#ff6b6b,stroke:#c92a2a,stroke-width:2px,color:#fff
    style AppPackages fill:#ff6b6b,stroke:#c92a2a,stroke-width:2px,color:#fff
    style NuGet fill:#ff922b,stroke:#d9480f,stroke-width:2px,color:#fff
    style Temp fill:#ff922b,stroke:#d9480f,stroke-width:2px,color:#fff

कारण A: bin और obj फ़ोल्डर्स (30 - 60+ GB)

  • obj/ (मध्यवर्ती आउटपुट): कंपाइलर की अस्थायी स्थिति रखता है। Android प्रोजेक्ट्स में यह फ़ोल्डर 3 से 6 GB तक बढ़ जाता है।
  • bin/ (बाइनरी आउटपुट): अंतिम निष्पादन योग्य फ़ाइलें और कॉपी किए गए सभी एसेट्स रखता है। यदि 10 प्रोजेक्ट 500 MB के एक सामान्य गेम कंटेंट को संदर्भित करते हैं, तो वह 10 बार कॉपी होकर 5 GB बर्बाद करता है।

कारण B: Microsoft Store AppPackages फ़ोल्डर्स (5 - 20+ GB)

स्टोर पैकेज बनाते समय Visual Studio .msixbundle और .msixupload फ़ाइलें उत्पन्न करता है। यह पुराने संस्करणों को कभी अपने-आप नहीं हटाता।

कारण C: ग्लोबल NuGet पैकेज कैश (10 - 20+ GB)

%USERPROFILE%\.nuget\packages में डाउनलोड किए गए हर पैकेज का हर संस्करण सुरक्षित रहता है।

कारण D: Windows Temp फ़ाइलें (3 - 10 GB)

कंपाइलिंग के दौरान %LOCALAPPDATA%\Temp में छूटी हुई हज़ारों अस्थायी फ़ाइलें।


2. सुरक्षा की गारंटी: यह 100% जोखिम-मुक्त क्यों है?

सुरक्षित (कभी नहीं हटाई जाती) हटाने के लिए सुरक्षित (100% पुनर्निर्मित)
सोर्स कोड: .cs, .xaml, .cpp, .json कंपाइलर ऑब्जेक्ट फ़ाइलें (obj/)
प्रोजेक्ट फ़ाइलें: .sln, .csproj, .wapproj कंपाइल की गई बाइनरी फ़ाइलें (bin/)
Git रिपॉजिटरी: .git/ फ़ोल्डर और कमिट इतिहास पुराने स्टोर रिलीज़ पैकेज (AppPackages/)
मूल एसेट्स: टेक्सचर, ऑडियो, शेडर्स डाउनलोड किए गए NuGet पैकेज (.nuget\packages)
प्रमाणपत्र: .pfx, StoreAssociation.xml Windows अस्थायी फ़ाइलें (%LOCALAPPDATA%\Temp)

Visual Studio दोबारा खोलने पर क्या होता है?
जब आप Build या Rebuild पर क्लिक करते हैं, तो Visual Studio आपके सोर्स कोड से bin और obj फ़ोल्डरों को अपने-आप नए सिरे से बना देता है। आपका कोई भी कोड नष्ट नहीं होता।


3. ऑटोमेशन स्क्रिप्ट: एक क्लिक में सफ़ाई

PowerShell स्क्रिप्ट (Clean-DevDiskSpace.ps1)

<#
.SYNOPSIS
    डेवलपर डिस्क स्पेस क्लीनअप टूल
#>
[CmdletBinding()]
param (
    [switch]$Force,
    [switch]$ScanOnly,
    [switch]$SkipNuget,
    [switch]$SkipTemp,
    [string]$RootPath = ""
)

if ([string]::IsNullOrWhiteSpace($RootPath)) {
    if ($PSScriptRoot) { $RootPath = (Join-Path $PSScriptRoot "..") } else { $RootPath = Get-Location }
}
$resolvedRoot = (Resolve-Path $RootPath -ErrorAction SilentlyContinue).Path

if ([string]::IsNullOrWhiteSpace($resolvedRoot) -or $resolvedRoot -in @("C:\", "C:", "\", "/")) {
    Write-Host "सुरक्षा रोक: अमान्य या रूट पाथ!" -ForegroundColor Red
    exit 1
}

$systemDrive = Get-PSDrive -Name C
$freeGBBefore = [math]::Round($systemDrive.Free / 1GB, 2)
Write-Host "सफ़ाई से पहले C पर खाली स्थान: $freeGBBefore GB" -ForegroundColor Yellow

$binObjDirs = Get-ChildItem -Path $resolvedRoot -Recurse -Directory -Force -ErrorAction SilentlyContinue |
              Where-Object { $_.Name -in @('bin', 'obj') }
$appPackageDirs = Get-ChildItem -Path $resolvedRoot -Recurse -Directory -Filter "AppPackages" -Force -ErrorAction SilentlyContinue

if ($ScanOnly) { Write-Host "स्कैन पूरा हुआ।" -ForegroundColor Yellow; return }
if (-not $Force) {
    $prompt = Read-Host "क्या आप सुरक्षित सफ़ाई शुरू करना चाहते हैं? (Y/N)"
    if ($prompt -notin @('Y', 'y')) { return }
}

$binObjDirs | ForEach-Object { try { Remove-Item -Path $_.FullName -Recurse -Force -ErrorAction SilentlyContinue } catch {} }
$appPackageDirs | ForEach-Object { try { Remove-Item -Path $_.FullName -Recurse -Force -ErrorAction SilentlyContinue } catch {} }
if (-not $SkipTemp) { Get-ChildItem -Path [System.IO.Path]::GetTempPath() -Force -ErrorAction SilentlyContinue | ForEach-Object { try { Remove-Item -Path $_.FullName -Recurse -Force -ErrorAction SilentlyContinue } catch {} } }
if (-not $SkipNuget) { try { $null = dotnet nuget locals all --clear 2>&1 } catch {} }

$freeGBAfter = [math]::Round((Get-PSDrive -Name C).Free / 1GB, 2)
$freedTotal = [math]::Round($freeGBAfter - $freeGBBefore, 2)
Write-Host "`nसफ़ाई पूरी हुई! प्राप्त स्थान: +$freedTotal GB" -ForegroundColor Green

बैच लॉन्चर (clean-disk-space.bat)

@echo off
setlocal
title Workspace Disk Cleanup
cd /d "%~dp0"
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%~dp0_tools\Clean-DevDiskSpace.ps1" %*
pause

4. वास्तविक परीक्षण परिणाम

  • सफ़ाई से पहले खाली स्थान: 1.35 GB (गंभीर चेतावनी)
  • सफ़ाई के बाद खाली स्थान: 53.80 GB
  • कुल खाली किया गया स्थान: +52.45 GB (मात्र 3 मिनट में)

Arar Games और हमारे गेम्स के बारे में

हमारे इंडी गेम्स खोजें और हमारे स्टूडियो से जुड़ें:

🎮 हमारे खेल

  • Blocked: Pixel Panzer: गतिशील मौसम और बॉस लड़ाइयों के साथ रेट्रो आर्केड टैंक मुकाबला।
    Google Play (Android और PC)
  • PaintTrek: जीवंत रंग पहेलियाँ और पिक्सेल पेंटिंग एक्शन।
    Google Play | Microsoft Store (PC और Xbox)
  • Space Dodger: तेज़-तर्रार अंतरिक्ष बाधा बचाव खेल।
    Google Play

📱 आधिकारिक सोशल मीडिया




Hiç yorum yok:

Yorum Gönder