मेरे पास एज़ूर में एक फाइलशेयर है, जिसमें अंदर फ़ोल्डर्स हैं, जिसमें बदले में कई फ़ोल्डर्स हैं। मैं फ़ोल्डर पर राइट क्लिक करके मैन्युअल रूप से एक फ़ोल्डर को हटाने की कोशिश कर रहा हूं, जिसमें बहुत सारी फाइलें हैं और यह कहता है

निर्देशिका हटाने में विफल. त्रुटि: निर्दिष्ट निर्देशिका खाली नहीं है।

निर्देशिका को कैसे हटाया जा सकता है? निर्देशिका में हजारों फ़ाइलें हटाई जानी हैं और निर्देशिका को हटाने के लिए प्रत्येक फ़ाइल को मैन्युअल रूप से हटाया नहीं जा सकता है

0
vikky 14 सितंबर 2020, 18:14
यदि आप गैर-रिक्त फ़ोल्डर को हटाने के लिए कोड का उपयोग करना पसंद नहीं करते हैं, तो आप उपकरण Azure Storage Explorer या AzCopy का उपयोग कर सकते हैं। अधिक विवरण के लिए नीचे उत्तर देखें।
 – 
Ivan Yang
16 सितंबर 2020, 05:41

3 जवाब

सबसे बढ़िया उत्तर

अपडेट करें:

आप Azure Storage Explorer का उपयोग कर सकते हैं (कृपया यह लेख इसे कैसे स्थापित करें और इसका उपयोग कैसे करें।), फिर अपने फ़ाइलशेयर पर जाएं - > फोल्डर पर राइट क्लिक करें -> डिलीट को सेलेक्ट करें। यह एक गैर-रिक्त फ़ोल्डर को हटा सकता है।

या आप AzCopy का उपयोग कर सकते हैं (देखें यहां इस टूल के बारे में अधिक जानकारी के लिए) azcopy remove कमांड और --recursive पैरामीटर।


मूल:

एज़ूर फ़ाइल शेयर में एक गैर-रिक्त फ़ोल्डर को हटाना संभव नहीं है, आपको पहले इसके अंदर की सभी फाइलों को हटा देना चाहिए।

कृपया इस उद्देश्य के लिए कुछ कोड लिखने पर विचार करें। और एक लेख है जो एक गैर-खाली फ़ोल्डर को हटाने के लिए पॉवरशेल का उपयोग करता है। यहाँ इस लेख में उपयोग किया गया पॉवरशेल कोड है (आप जीथब में स्रोत कोड भी पा सकते हैं यहां):

function RemoveFileDir ([Microsoft.Azure.Storage.File.CloudFileDirectory] $dir, [Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext] $ctx)
{   
    $filelist = Get-AzStorageFile -Directory $dir
    
    foreach ($f in $filelist)
    {   
        if ($f.GetType().Name -eq "CloudFileDirectory")
        {
            RemoveFileDir $f $ctx #Calling the same unction again. This is recursion.
        }
        else
        {
            Remove-AzStorageFile -File $f           
        }
    }
    Remove-AzStorageDirectory -Directory $dir
    
} 


#define varibales
$StorageAccountName = "Your Storage account name" 
$StorageAccountKey = "Your storage account primary key"
$AzShare = "your azure file share name"
$AzDirectory = "LatestPublish - your directory name under which you want to delete everything; including this directry"
 
 

#create primary region storage context
$ctx = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey
$ctx.ToString()

#Check for Share Existence
$S = Get-AzStorageShare -Context $ctx -ErrorAction SilentlyContinue|Where-Object {$_.Name -eq $AzShare}

# Check for directory
$d = Get-AzStorageFile -Share $S -ErrorAction SilentlyContinue|select Name

if ($d.Name -notcontains $AzDirectory)
{
    # directory is not present; no action to be performed
    
}
else
{    
    $dir = Get-AzStorageFile -Share $s -Path $AzDirectory    
    RemoveFileDir $dir $ctx    
}
1
Ivan Yang 16 सितंबर 2020, 09:50
दिए गए सभी उत्तरों में से, मैंने गैर-खाली फ़ोल्डर को हटाने के लिए Azcopy कमांड का प्रयास किया है और यह बिल्कुल ठीक काम करता है।
 – 
vikky
16 सितंबर 2020, 18:51

Azure CLI का उपयोग करके देखें

export CONN_STRING="<YOUR-CONNECTION-STRING>"

az storage share delete \
   --connection-string $CONN_STRING \
   --name filesharename
0
freedev 12 मार्च 2021, 00:52

बस इसे अपनी मशीन से हटा दें जिससे यह जुड़ा हुआ है।

Remove-Item -Recurse -Force "your directory"
0
Oleh Tarasenko 14 सितंबर 2020, 19:01