Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon S3删除子文件夹并将其';s目录C#_C#_Amazon Web Services_Amazon S3 - Fatal编程技术网

Amazon S3删除子文件夹并将其';s目录C#

Amazon S3删除子文件夹并将其';s目录C#,c#,amazon-web-services,amazon-s3,C#,Amazon Web Services,Amazon S3,假设在S3存储桶中有以下层次结构 Bucket DeptFolder Folder1 Folder2 -file1 -file2 -file3 我想删除Folder2和它下面的所有文件,这样它看起来就像这样 Bucket DeptFolder Folder1 我运行以下代码,删除发生在Folder1而不是Folder2 using (var s

假设在S3存储桶中有以下层次结构

Bucket
   DeptFolder
        Folder1
           Folder2
              -file1
              -file2
              -file3
我想删除Folder2和它下面的所有文件,这样它看起来就像这样

Bucket
   DeptFolder
        Folder1
我运行以下代码,删除发生在Folder1而不是Folder2

using (var s3Client = new AmazonS3Client(myAccessKey,mySecretAccessKey, config))
                {

                        S3DirectoryInfo directoryToDelete = new S3DirectoryInfo(s3Client, myBucket, "DeptFolder/Folder1/Folder2");
                        directoryToDelete.Delete(true); 

                }
我的结局是

Bucket
    DeptFolder

谁能告诉我哪里出了问题?谢谢

AmazonS3是一个对象存储系统,而不是文件系统

文件夹实际上不存在

例如,您可以创建一个名为
DeptFolder/Folder1/Folder2/foo
的对象,该对象将在该路径中创建,即使文件夹不存在!文件夹似乎在那里,但它们只是为了方便而创建的

如果对象被删除,文件夹也会消失,因为它们实际上并不存在

我想这就是发生在你身上的事。。。
Folder1
中没有对象,因此当删除
Folder1/Folder2
时,
Folder1
也会消失,因为其中没有使其“出现”的内容

底线:不要认为S3是一个普通的文件系统。不要担心存在哪些目录/文件夹。只需将文件存储在您想要的位置,它就可以正常工作。空文件夹(通常)不存在。不要惊慌


有些人会惊慌失措,所以他们会创建与文件夹同名的空(零长度)文件,这会强制文件夹出现。您可以这样做,但最好接受S3的工作方式。

AmazonS3是一个对象存储系统,而不是文件系统

文件夹实际上不存在

例如,您可以创建一个名为
DeptFolder/Folder1/Folder2/foo
的对象,该对象将在该路径中创建,即使文件夹不存在!文件夹似乎在那里,但它们只是为了方便而创建的

如果对象被删除,文件夹也会消失,因为它们实际上并不存在

我想这就是发生在你身上的事。。。
Folder1
中没有对象,因此当删除
Folder1/Folder2
时,
Folder1
也会消失,因为其中没有使其“出现”的内容

底线:不要认为S3是一个普通的文件系统。不要担心存在哪些目录/文件夹。只需将文件存储在您想要的位置,它就可以正常工作。空文件夹(通常)不存在。不要惊慌


有些人会惊慌失措,所以他们会创建与文件夹同名的空(零长度)文件,这会强制文件夹出现。您可以这样做,但最好接受S3的工作方式。

在Folder2之后添加正斜杠会改变结果吗?“DeptFolder/Folder1/Folder2/”在Folder2之后添加正斜杠不会导致任何内容被删除。我也尝试过正斜杠星号,在Folder2之后添加正斜杠,结果如何?“DeptFolder/Folder1/Folder2/”在Folder2之后添加正斜杠不会导致任何内容被删除。我也尝试过正斜杠星号,很有意义!谢谢你的回答!这很有道理!谢谢你的回答!