我正在构建一个应用程序,我需要使用Azure的PHP SDK动态创建一些目录。
我使用循环来做到这一点,但是我不确定这是否是正确的方式,所以这里是我的代码;
我无法创建已经存在的路径,因此必须逐级检查目录是否存在,然后输入并重复。
public function generateDirectory($path)
{
$pathArray = explode("/", $path);
$currentPath = "";
try {
foreach ($pathArray as $key => $slice) {
$directories = $this->fileClient->listDirectoriesAndFiles("abraco", $currentPath)->getDirectories();
$currentPath .= $slice . "/";
$exists = false;
foreach ($directories as $key => $directory) {
if ($directory->getName() === $slice) {
$exists = true;
break;
}
}
if (!$exists) {
$this->fileClient->createDirectory("abraco", $currentPath);
}
}
return true;
} catch (Exception $e) {
return false;
}
}
是否应该有一种使用子文件夹创建完整路径的方法?我认为这种方式不可行。
答案 0 :(得分:0)
是否应该有一种使用子文件夹创建完整路径的方法?我认为这种方式不可行。
我同意您的观点,即有一种方法可以用子文件夹创建完整路径。 但是目前,正如您提到的那样,如果要使用子文件夹创建完整路径,则需要逐级创建目录文件夹。
如果在通过PHP SDK创建多级目录结构时使用提琴手捕获请求,则可以使用以下Rest API查找它
https://myaccount.file.core.windows.net/myshare/myparentdirectorypath/mydirectory?
restype=directory
有关更多信息,请参考Azure文件存储Create directory API。
myparentdirectorypath可选。到要在其中创建mydirectory的父目录的路径。如果省略父目录路径,则将在指定的共享中创建目录。
如果已指定,则在创建mydirectory之前,共享中的父目录必须已经存在。