title: Delete Empty S3 Folder .Net SDK
body: <p>I am using .Net Core along with Amazon's .net sdk to push and pull things from S3. I am using a folder structure in S3 that involves inserting an empty directory with several sub directories.</p>
  
  <p>At a later time I insert files into those directories and move them around. Now I need to be able to remove the directory entirely.</p>
  
  <p>I am able to delete all of the contents of the directory by using </p>
  
  <p><code>await client.DeleteObjectAsync(bucketName, keyName, null).ConfigureAwait(false);</code></p>
  
  <p>where I loop through all the files I want to delete in the given bucket. However, it always leaves me with the empty folder structure, in S3 I see that it has a content of 0 Bytes but I don't want to have to sort through thousands of empty folders to find the ones that actually have data.</p>
  
  <p>Is there any way to remove an empty folder from S3 using AWS .NET SDK?</p>
  
  <p>Update:</p>
  
  <p>I am able to delete everything in the folder I want except for the folder itself.</p>
  
  <pre><code>using (IAmazonS3 client = new AmazonS3Client(awsCreds, Amazon.RegionEndpoint.USEast1))
              {
                  try
                  {
                      DeleteObjectsRequest deleteRequest = new DeleteObjectsRequest();
                      ListObjectsRequest listRequest = new ListObjectsRequest
                      {
                          BucketName = bucketName,
                          Prefix = prefix,
                          //Marker = prefix,
                      };
  
                      ListObjectsResponse response = await client.ListObjectsAsync(listRequest).ConfigureAwait(false);
                      // Process response
                      foreach (S3Object entry in response.S3Objects)
                      {
                          deleteRequest.AddKey(entry.Key);
                      }
  
                      deleteRequest.BucketName = bucketName;
                      var response2 = await client.DeleteObjectsAsync(deleteRequest).ConfigureAwait(false);
  
                      return true;
                  }
                  catch (AmazonS3Exception amazonS3Exception)
                  {
                      if (amazonS3Exception.ErrorCode != null
                          &amp;&amp; (amazonS3Exception.ErrorCode.Equals("InvalidAccessKeyId", StringComparison.Ordinal)
                          || amazonS3Exception.ErrorCode.Equals("InvalidSecurity", StringComparison.Ordinal)))
                      {
                          logger.LogError("AwsS3Service.DeleteFileFromBucket Error - Check the provided AWS Credentials.");
                      }
                      else
                      {
                          logger.LogError($"AwsS3Service.DeleteFileFromBucket Error - Message: {amazonS3Exception.Message}");
                      }
                  }
              }
  </code></pre>
  
  <p>This deletes the entire contents of the directory I choose along with all sub directories. But the main directory remains, is there any way to remove that main directory.</p>