public ErrorTypes RemovePath(string strPath)
        {
            ErrorTypes eResult = ErrorTypes.StorageRemoveDir;

            try
            {
                string strDirKey = GetDirPath(strPath);

                using (Amazon.S3.AmazonS3 oS3Client = Amazon.AWSClientFactory.CreateAmazonS3Client(m_oRegion))
                {
                    Amazon.S3.Model.ListObjectsRequest oListObjectsRequest = new Amazon.S3.Model.ListObjectsRequest();
                    oListObjectsRequest.WithBucketName(m_strBucketName).WithPrefix(strDirKey);

                    using (Amazon.S3.Model.ListObjectsResponse oListObjectsResponse = oS3Client.ListObjects(oListObjectsRequest))
                    {
                        int nDeletedObjectCount   = 0;
                        int nObjectsToDeleteCount = oListObjectsResponse.S3Objects.Count;
                        if (nObjectsToDeleteCount > 0)
                        {
                            Amazon.S3.Model.DeleteObjectsRequest oDeleteObjectsRequest = new Amazon.S3.Model.DeleteObjectsRequest();
                            oDeleteObjectsRequest.WithBucketName(m_strBucketName);

                            foreach (Amazon.S3.Model.S3Object oS3Obj in oListObjectsResponse.S3Objects)
                            {
                                oDeleteObjectsRequest.AddKey(oS3Obj.Key);
                            }

                            using (Amazon.S3.Model.DeleteObjectsResponse oDeleteObjectsResponse = oS3Client.DeleteObjects(oDeleteObjectsRequest))
                            {
                                nDeletedObjectCount = oDeleteObjectsResponse.DeletedObjects.Count;
                            }
                        }

                        if (nObjectsToDeleteCount == nDeletedObjectCount)
                        {
                            eResult = ErrorTypes.NoError;
                        }
                    }
                }
            }
            catch
            {
            }

            return(eResult);
        }
 public ErrorTypes RemovePathEnd(IAsyncResult ar)
 {
     try
     {
         if (m_oRemoveDirectory.m_oListObjectsResponse.S3Objects.Count > 0)
         {
             using (Amazon.S3.Model.DeleteObjectsResponse oDeleteObjectsResponse = m_oRemoveDirectory.m_oS3Client.EndDeleteObjects(ar))
             {
                 if (oDeleteObjectsResponse.DeletedObjects.Count != m_oRemoveDirectory.m_oListObjectsResponse.S3Objects.Count)
                 {
                     m_oRemoveDirectory.m_eError = ErrorTypes.StorageRemoveDir;
                 }
             }
         }
         m_oRemoveDirectory.Close();
     }
     catch
     {
         m_oRemoveDirectory.m_eError = ErrorTypes.StorageRemoveDir;
         m_oRemoveDirectory.Dispose();
     }
     return(m_oRemoveDirectory.m_eError);
 }