مشاركة عبر


ShareDirectoryClient class

يمثل ShareDirectoryClient عنوان URL لدليل Azure Storage مما يسمح لك بمعالجة ملفاته ودلائله.

يمتد

StorageClient

المنشئون

ShareDirectoryClient(string, Credential | TokenCredential, ShareClientOptions)

إنشاء مثيل DirectoryClient.

ShareDirectoryClient(string, Pipeline, ShareClientConfig)

إنشاء مثيل DirectoryClient.

الخصائص

name

اسم الدليل

path

المسار الكامل للدليل

shareName

اسم المشاركة المطابق لعميل الدليل هذا

الخصائص الموروثة

accountName
url

قيمة سلسلة عنوان URL.

الأساليب

create(DirectoryCreateOptions)

إنشاء دليل جديد ضمن المشاركة المحددة أو الدليل الأصل.

راجع https://learn.microsoft.com/rest/api/storageservices/create-directory

createFile(string, number, FileCreateOptions)

إنشاء ملف جديد أو استبدال ملف ضمن هذا الدليل. لاحظ أنه يقوم بتهيئة الملف بدون محتوى فقط.

راجع https://learn.microsoft.com/rest/api/storageservices/create-file

createIfNotExists(DirectoryCreateOptions)

إنشاء دليل جديد ضمن الدليل الأصل أو المشاركة المحددة إذا لم يكن موجودا بالفعل. إذا كان الدليل موجودا بالفعل، فلن يتم تعديله.

راجع https://learn.microsoft.com/rest/api/storageservices/create-directory

createSubdirectory(string, DirectoryCreateOptions)

إنشاء دليل فرعي جديد ضمن هذا الدليل.

راجع https://learn.microsoft.com/rest/api/storageservices/create-directory

delete(DirectoryDeleteOptions)

إزالة الدليل الفارغ المحدد. لاحظ أن الدليل يجب أن يكون فارغا قبل أن يمكن حذفه.

راجع https://learn.microsoft.com/rest/api/storageservices/delete-directory

deleteFile(string, FileDeleteOptions)

إزالة الملف المحدد ضمن هذا الدليل من حساب التخزين. عند حذف ملف بنجاح، تتم إزالته على الفور من فهرس حساب التخزين ولم يعد يمكن للعملاء الوصول إليه. تتم إزالة بيانات الملف لاحقا من الخدمة أثناء تجميع البيانات المهملة.

سيفشل حذف ملف مع رمز الحالة 409 (تعارض) ورمز الخطأ SharingViolation إذا كان الملف مفتوحا على عميل SMB.

حذف ملف غير معتمد على لقطة مشاركة، وهي نسخة للقراءة فقط من المشاركة. ستفشل محاولة تنفيذ هذه العملية على لقطة مشاركة مع 400 (InvalidQueryParameterValue)

راجع https://learn.microsoft.com/rest/api/storageservices/delete-file2

deleteIfExists(DirectoryDeleteOptions)

إزالة الدليل الفارغ المحدد إذا كان موجودا. لاحظ أن الدليل يجب أن يكون فارغا قبل أن يمكن حذفه.

راجع https://learn.microsoft.com/rest/api/storageservices/delete-directory

deleteSubdirectory(string, DirectoryDeleteOptions)

إزالة الدليل الفرعي الفارغ المحدد ضمن هذا الدليل. لاحظ أن الدليل يجب أن يكون فارغا قبل أن يمكن حذفه.

راجع https://learn.microsoft.com/rest/api/storageservices/delete-directory

exists(DirectoryExistsOptions)

إرجاع true إذا كان الدليل المحدد موجودا؛ خطأ خلاف ذلك.

ملاحظة: استخدم هذه الدالة بعناية حيث قد يتم حذف دليل موجود من قبل عملاء أو تطبيقات أخرى. قد تتم إضافة الدلائل الجديدة بالعكس بواسطة عملاء أو تطبيقات أخرى بعد اكتمال هذه الدالة.

forceCloseAllHandles(DirectoryForceCloseHandlesSegmentOptions)

فرض إغلاق كافة المقابض لدليل.

راجع https://learn.microsoft.com/rest/api/storageservices/force-close-handles

forceCloseHandle(string, DirectoryForceCloseHandlesOptions)

فرض إغلاق مقبض معين لدليل.

راجع https://learn.microsoft.com/rest/api/storageservices/force-close-handles

getDirectoryClient(string)

إنشاء كائن ShareDirectoryClient لدليل فرعي.

getFileClient(string)

إنشاء كائن ShareFileClient.

getProperties(DirectoryGetPropertiesOptions)

إرجاع كافة خصائص النظام للدليل المحدد، ويمكن أيضا استخدامها للتحقق من وجود دليل. لا تتضمن البيانات التي تم إرجاعها الملفات الموجودة في الدليل أو أي أدلة فرعية.

راجع https://learn.microsoft.com/rest/api/storageservices/get-directory-properties

listFilesAndDirectories(DirectoryListFilesAndDirectoriesOptions)

إرجاع مكرر غير متزامن قابل للتكدير لسرد جميع الملفات والدلائل ضمن الحساب المحدد.

يقوم .byPage() بإرجاع تكرار غير متزامن لسرد الملفات والدلائل في الصفحات.

مثال على استخدام بناء جملة for await:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let i = 1;
for await (const item of directoryClient.listFilesAndDirectories()) {
  if (item.kind === "directory") {
    console.log(`${i} - directory\t: ${item.name}`);
  } else {
    console.log(`${i} - file\t: ${item.name}`);
  }
  i++;
}

مثال على استخدام iter.next():

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let i = 1;
const iter = directoryClient.listFilesAndDirectories();
let { value, done } = await iter.next();
while (!done) {
  if (value.kind === "directory") {
    console.log(`${i} - directory\t: ${value.name}`);
  } else {
    console.log(`${i} - file\t: ${value.name}`);
  }
  ({ value, done } = await iter.next());
  i++;
}

مثال على استخدام byPage():

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let i = 1;
for await (const response of directoryClient
  .listFilesAndDirectories()
  .byPage({ maxPageSize: 20 })) {
  console.log(`Page ${i++}:`);
  for (const item of response.segment.directoryItems) {
    console.log(`\tdirectory: ${item.name}`);
  }
  for (const item of response.segment.fileItems) {
    console.log(`\tfile: ${item.name}`);
  }
}

مثال على استخدام الترحيل مع علامة:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let iterator = directoryClient.listFilesAndDirectories().byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

for await (const item of response.segment.directoryItems) {
  console.log(`\tdirectory: ${item.name}`);
}

for await (const item of response.segment.fileItems) {
  console.log(`\tfile: ${item.name}`);
}

// Gets next marker
let marker = response.continuationToken;

// Passing next marker as continuationToken
iterator = directoryClient
  .listFilesAndDirectories()
  .byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

for await (const item of response.segment.directoryItems) {
  console.log(`\tdirectory: ${item.name}`);
}

for await (const item of response.segment.fileItems) {
  console.log(`\tfile: ${item.name}`);
}
listHandles(DirectoryListHandlesOptions)

إرجاع مكرر غير متزامن قابل للتكبير لسرد جميع المقابض. ضمن الحساب المحدد.

يقوم .byPage() بإرجاع مكرر غير متزامن قابل للتكريب لسرد المقابض في الصفحات.

مثال على استخدام بناء جملة for await:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

for await (const handle of directoryClient.listHandles()) {
  console.log(`Handle: ${handle.handleId}`);
}

مثال على استخدام iter.next():

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

const handleIter = directoryClient.listHandles();
let { value, done } = await handleIter.next();
while (!done) {
  console.log(`Handle: ${value.handleId}`);
  ({ value, done } = await handleIter.next());
}

مثال على استخدام byPage():

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let i = 1;
for await (const response of directoryClient.listHandles().byPage({ maxPageSize: 20 })) {
  console.log(`Page ${i++}:`);
  for (const handle of response.handleList || []) {
    console.log(`\thandle: ${handle.handleId}`);
  }
}

مثال على استخدام الترحيل مع علامة:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let iterator = directoryClient.listHandles().byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

for await (const handle of response.handleList || []) {
  console.log(`\thandle: ${handle.handleId}`);
}

// Gets next marker
let marker = response.continuationToken;

// Passing next marker as continuationToken
iterator = directoryClient.listHandles().byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

for await (const handle of response.handleList || []) {
  console.log(`\thandle: ${handle.handleId}`);
}
rename(string, DirectoryRenameOptions)

إعادة تسمية دليل. تدعم واجهة برمجة التطبيقات هذه فقط إعادة تسمية دليل في نفس المشاركة.

setMetadata(Metadata, DirectorySetMetadataOptions)

تحديث بيانات التعريف المعرفة من قبل المستخدم للدليل المحدد.

راجع https://learn.microsoft.com/rest/api/storageservices/set-directory-metadata

setProperties(DirectoryProperties)

تعيين خصائص على الدليل.

راجع https://learn.microsoft.com/rest/api/storageservices/set-directory-properties

تفاصيل المنشئ

ShareDirectoryClient(string, Credential | TokenCredential, ShareClientOptions)

إنشاء مثيل DirectoryClient.

new ShareDirectoryClient(url: string, credential?: Credential | TokenCredential, options?: ShareClientOptions)

المعلمات

url

string

سلسلة URL تشير إلى دليل ملف Azure Storage، مثل "https://myaccount.file.core.windows.net/myshare/mydirectory". يمكنك إلحاق SAS إذا كنت تستخدم AnonymousCredential، مثل "https://myaccount.file.core.windows.net/myshare/mydirectory?sasString". يقبل هذا الأسلوب عنوان URL مشفر أو عنوان URL غير مشفر يشير إلى دليل. لن يتم إلغاء سلسلة URL المرمزة مرتين، سيتم إلغاء الأحرف الخاصة فقط في مسار URL. ومع ذلك، إذا كان اسم الدليل يتضمن %، يجب ترميز اسم الدليل في عنوان URL. مثل دليل يسمى "mydir%"، يجب أن يكون عنوان URL "https://myaccount.file.core.windows.net/myshare/mydir%25".

credential

Credential | TokenCredential

مثل AnonymousCredential أو StorageSharedKeyCredential. إذا لم يتم تحديده، يتم استخدام AnonymousCredential.

options
ShareClientOptions

Optional. خيارات لتكوين البنية الأساسية لبرنامج ربط العمليات التجارية HTTP.

ShareDirectoryClient(string, Pipeline, ShareClientConfig)

إنشاء مثيل DirectoryClient.

new ShareDirectoryClient(url: string, pipeline: Pipeline, options?: ShareClientConfig)

المعلمات

url

string

سلسلة URL تشير إلى دليل ملف Azure Storage، مثل "https://myaccount.file.core.windows.net/myshare/mydirectory". يمكنك إلحاق SAS إذا كنت تستخدم AnonymousCredential، مثل "https://myaccount.file.core.windows.net/myshare/mydirectory?sasString". يقبل هذا الأسلوب عنوان URL مشفر أو عنوان URL غير مشفر يشير إلى دليل. لن يتم إلغاء سلسلة URL المرمزة مرتين، سيتم إلغاء الأحرف الخاصة فقط في مسار URL. ومع ذلك، إذا كان اسم الدليل يتضمن %، يجب ترميز اسم الدليل في عنوان URL. مثل دليل يسمى "mydir%"، يجب أن يكون عنوان URL "https://myaccount.file.core.windows.net/myshare/mydir%25".

pipeline
Pipeline

استدعاء newPipeline() لإنشاء مسار افتراضي، أو توفير مسار مخصص.

تفاصيل الخاصية

name

اسم الدليل

string name

قيمة الخاصية

string

path

المسار الكامل للدليل

string path

قيمة الخاصية

string

shareName

اسم المشاركة المطابق لعميل الدليل هذا

string shareName

قيمة الخاصية

string

تفاصيل الخاصية الموروثة

accountName

accountName: string

قيمة الخاصية

string

موروث من StorageClient.accountName

url

قيمة سلسلة عنوان URL.

url: string

قيمة الخاصية

string

موروث من StorageClient.url

تفاصيل الأسلوب

create(DirectoryCreateOptions)

إنشاء دليل جديد ضمن المشاركة المحددة أو الدليل الأصل.

راجع https://learn.microsoft.com/rest/api/storageservices/create-directory

function create(options?: DirectoryCreateOptions): Promise<DirectoryCreateResponse>

المعلمات

options
DirectoryCreateOptions

خيارات عملية إنشاء الدليل.

المرتجعات

بيانات الاستجابة لعملية الدليل.

createFile(string, number, FileCreateOptions)

إنشاء ملف جديد أو استبدال ملف ضمن هذا الدليل. لاحظ أنه يقوم بتهيئة الملف بدون محتوى فقط.

راجع https://learn.microsoft.com/rest/api/storageservices/create-file

function createFile(fileName: string, size: number, options?: FileCreateOptions): Promise<{ fileClient: ShareFileClient, fileCreateResponse: FileCreateResponse }>

المعلمات

fileName

string

size

number

يحدد الحد الأقصى للحجم بالبايت للملف، حتى 4 تيرابايت.

options
FileCreateOptions

خيارات لعملية إنشاء ملف.

المرتجعات

Promise<{ fileClient: ShareFileClient, fileCreateResponse: FileCreateResponse }>

بيانات استجابة إنشاء الملف وعميل الملف المقابل.

createIfNotExists(DirectoryCreateOptions)

إنشاء دليل جديد ضمن الدليل الأصل أو المشاركة المحددة إذا لم يكن موجودا بالفعل. إذا كان الدليل موجودا بالفعل، فلن يتم تعديله.

راجع https://learn.microsoft.com/rest/api/storageservices/create-directory

function createIfNotExists(options?: DirectoryCreateOptions): Promise<DirectoryCreateIfNotExistsResponse>

المعلمات

المرتجعات

createSubdirectory(string, DirectoryCreateOptions)

إنشاء دليل فرعي جديد ضمن هذا الدليل.

راجع https://learn.microsoft.com/rest/api/storageservices/create-directory

function createSubdirectory(directoryName: string, options?: DirectoryCreateOptions): Promise<{ directoryClient: ShareDirectoryClient, directoryCreateResponse: DirectoryCreateResponse }>

المعلمات

directoryName

string

options
DirectoryCreateOptions

خيارات عملية إنشاء الدليل.

المرتجعات

Promise<{ directoryClient: ShareDirectoryClient, directoryCreateResponse: DirectoryCreateResponse }>

ينشئ الدليل بيانات الاستجابة ومثيل DirectoryClient المقابل.

delete(DirectoryDeleteOptions)

إزالة الدليل الفارغ المحدد. لاحظ أن الدليل يجب أن يكون فارغا قبل أن يمكن حذفه.

راجع https://learn.microsoft.com/rest/api/storageservices/delete-directory

function delete(options?: DirectoryDeleteOptions): Promise<DirectoryDeleteResponse>

المعلمات

options
DirectoryDeleteOptions

خيارات لعملية حذف الدليل.

المرتجعات

بيانات الاستجابة لعملية حذف الدليل.

deleteFile(string, FileDeleteOptions)

إزالة الملف المحدد ضمن هذا الدليل من حساب التخزين. عند حذف ملف بنجاح، تتم إزالته على الفور من فهرس حساب التخزين ولم يعد يمكن للعملاء الوصول إليه. تتم إزالة بيانات الملف لاحقا من الخدمة أثناء تجميع البيانات المهملة.

سيفشل حذف ملف مع رمز الحالة 409 (تعارض) ورمز الخطأ SharingViolation إذا كان الملف مفتوحا على عميل SMB.

حذف ملف غير معتمد على لقطة مشاركة، وهي نسخة للقراءة فقط من المشاركة. ستفشل محاولة تنفيذ هذه العملية على لقطة مشاركة مع 400 (InvalidQueryParameterValue)

راجع https://learn.microsoft.com/rest/api/storageservices/delete-file2

function deleteFile(fileName: string, options?: FileDeleteOptions): Promise<FileDeleteResponse>

المعلمات

fileName

string

اسم الملف المراد حذفه

options
FileDeleteOptions

خيارات لعملية حذف الملف.

المرتجعات

بيانات استجابة حذف الملف.

deleteIfExists(DirectoryDeleteOptions)

إزالة الدليل الفارغ المحدد إذا كان موجودا. لاحظ أن الدليل يجب أن يكون فارغا قبل أن يمكن حذفه.

راجع https://learn.microsoft.com/rest/api/storageservices/delete-directory

function deleteIfExists(options?: DirectoryDeleteOptions): Promise<DirectoryDeleteIfExistsResponse>

المعلمات

المرتجعات

deleteSubdirectory(string, DirectoryDeleteOptions)

إزالة الدليل الفرعي الفارغ المحدد ضمن هذا الدليل. لاحظ أن الدليل يجب أن يكون فارغا قبل أن يمكن حذفه.

راجع https://learn.microsoft.com/rest/api/storageservices/delete-directory

function deleteSubdirectory(directoryName: string, options?: DirectoryDeleteOptions): Promise<DirectoryDeleteResponse>

المعلمات

directoryName

string

options
DirectoryDeleteOptions

خيارات لعملية حذف الدليل.

المرتجعات

بيانات استجابة حذف الدليل.

exists(DirectoryExistsOptions)

إرجاع true إذا كان الدليل المحدد موجودا؛ خطأ خلاف ذلك.

ملاحظة: استخدم هذه الدالة بعناية حيث قد يتم حذف دليل موجود من قبل عملاء أو تطبيقات أخرى. قد تتم إضافة الدلائل الجديدة بالعكس بواسطة عملاء أو تطبيقات أخرى بعد اكتمال هذه الدالة.

function exists(options?: DirectoryExistsOptions): Promise<boolean>

المعلمات

options
DirectoryExistsOptions

خيارات لعملية Exists.

المرتجعات

Promise<boolean>

forceCloseAllHandles(DirectoryForceCloseHandlesSegmentOptions)

فرض إغلاق كافة المقابض لدليل.

راجع https://learn.microsoft.com/rest/api/storageservices/force-close-handles

function forceCloseAllHandles(options?: DirectoryForceCloseHandlesSegmentOptions): Promise<CloseHandlesInfo>

المعلمات

المرتجعات

Promise<CloseHandlesInfo>

forceCloseHandle(string, DirectoryForceCloseHandlesOptions)

فرض إغلاق مقبض معين لدليل.

راجع https://learn.microsoft.com/rest/api/storageservices/force-close-handles

function forceCloseHandle(handleId: string, options?: DirectoryForceCloseHandlesOptions): Promise<DirectoryForceCloseHandlesResponse>

المعلمات

handleId

string

معرف مقبض معين، لا يمكن أن يكون علامة نجمية "*". استخدم forceCloseHandlesSegment() لإغلاق جميع المقابض.

المرتجعات

getDirectoryClient(string)

إنشاء كائن ShareDirectoryClient لدليل فرعي.

function getDirectoryClient(subDirectoryName: string): ShareDirectoryClient

المعلمات

subDirectoryName

string

اسم دليل فرعي

المرتجعات

كائن ShareDirectoryClient لاسم الدليل الفرعي المحدد.

مثال على الاستخدام:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const shareClient = serviceClient.getShareClient(shareName);
const directoryClient = shareClient.getDirectoryClient(directoryName);
await directoryClient.create();

getFileClient(string)

إنشاء كائن ShareFileClient.

function getFileClient(fileName: string): ShareFileClient

المعلمات

fileName

string

اسم ملف.

المرتجعات

كائن ShareFileClient جديد لاسم الملف المحدد.

مثال على الاستخدام:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

const content = "Hello World!";
const fileName = `newdirectory${+new Date()}`;
const fileClient = directoryClient.getFileClient(fileName);
await fileClient.create(content.length);
console.log(`Create file ${fileName} successfully`);

// Upload file range
await fileClient.uploadRange(content, 0, content.length);
console.log(`Upload file range "${content}" to ${fileName} successfully`);

getProperties(DirectoryGetPropertiesOptions)

إرجاع كافة خصائص النظام للدليل المحدد، ويمكن أيضا استخدامها للتحقق من وجود دليل. لا تتضمن البيانات التي تم إرجاعها الملفات الموجودة في الدليل أو أي أدلة فرعية.

راجع https://learn.microsoft.com/rest/api/storageservices/get-directory-properties

function getProperties(options?: DirectoryGetPropertiesOptions): Promise<DirectoryGetPropertiesResponse>

المعلمات

options
DirectoryGetPropertiesOptions

خيارات عملية الحصول على خصائص الدليل.

المرتجعات

بيانات الاستجابة لعملية الحصول على خصائص الدليل.

listFilesAndDirectories(DirectoryListFilesAndDirectoriesOptions)

إرجاع مكرر غير متزامن قابل للتكدير لسرد جميع الملفات والدلائل ضمن الحساب المحدد.

يقوم .byPage() بإرجاع تكرار غير متزامن لسرد الملفات والدلائل في الصفحات.

مثال على استخدام بناء جملة for await:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let i = 1;
for await (const item of directoryClient.listFilesAndDirectories()) {
  if (item.kind === "directory") {
    console.log(`${i} - directory\t: ${item.name}`);
  } else {
    console.log(`${i} - file\t: ${item.name}`);
  }
  i++;
}

مثال على استخدام iter.next():

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let i = 1;
const iter = directoryClient.listFilesAndDirectories();
let { value, done } = await iter.next();
while (!done) {
  if (value.kind === "directory") {
    console.log(`${i} - directory\t: ${value.name}`);
  } else {
    console.log(`${i} - file\t: ${value.name}`);
  }
  ({ value, done } = await iter.next());
  i++;
}

مثال على استخدام byPage():

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let i = 1;
for await (const response of directoryClient
  .listFilesAndDirectories()
  .byPage({ maxPageSize: 20 })) {
  console.log(`Page ${i++}:`);
  for (const item of response.segment.directoryItems) {
    console.log(`\tdirectory: ${item.name}`);
  }
  for (const item of response.segment.fileItems) {
    console.log(`\tfile: ${item.name}`);
  }
}

مثال على استخدام الترحيل مع علامة:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let iterator = directoryClient.listFilesAndDirectories().byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

for await (const item of response.segment.directoryItems) {
  console.log(`\tdirectory: ${item.name}`);
}

for await (const item of response.segment.fileItems) {
  console.log(`\tfile: ${item.name}`);
}

// Gets next marker
let marker = response.continuationToken;

// Passing next marker as continuationToken
iterator = directoryClient
  .listFilesAndDirectories()
  .byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

for await (const item of response.segment.directoryItems) {
  console.log(`\tdirectory: ${item.name}`);
}

for await (const item of response.segment.fileItems) {
  console.log(`\tfile: ${item.name}`);
}
function listFilesAndDirectories(options?: DirectoryListFilesAndDirectoriesOptions): PagedAsyncIterableIterator<({ kind: "file" } & FileItem) | ({ kind: "directory" } & DirectoryItem), DirectoryListFilesAndDirectoriesSegmentResponse, PageSettings>

المعلمات

options
DirectoryListFilesAndDirectoriesOptions

خيارات لسرد عملية الملفات والدلائل.

المرتجعات

asyncIterableIterator يدعم الترحيل.

listHandles(DirectoryListHandlesOptions)

إرجاع مكرر غير متزامن قابل للتكبير لسرد جميع المقابض. ضمن الحساب المحدد.

يقوم .byPage() بإرجاع مكرر غير متزامن قابل للتكريب لسرد المقابض في الصفحات.

مثال على استخدام بناء جملة for await:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

for await (const handle of directoryClient.listHandles()) {
  console.log(`Handle: ${handle.handleId}`);
}

مثال على استخدام iter.next():

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

const handleIter = directoryClient.listHandles();
let { value, done } = await handleIter.next();
while (!done) {
  console.log(`Handle: ${value.handleId}`);
  ({ value, done } = await handleIter.next());
}

مثال على استخدام byPage():

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let i = 1;
for await (const response of directoryClient.listHandles().byPage({ maxPageSize: 20 })) {
  console.log(`Page ${i++}:`);
  for (const handle of response.handleList || []) {
    console.log(`\thandle: ${handle.handleId}`);
  }
}

مثال على استخدام الترحيل مع علامة:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let iterator = directoryClient.listHandles().byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

for await (const handle of response.handleList || []) {
  console.log(`\thandle: ${handle.handleId}`);
}

// Gets next marker
let marker = response.continuationToken;

// Passing next marker as continuationToken
iterator = directoryClient.listHandles().byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

for await (const handle of response.handleList || []) {
  console.log(`\thandle: ${handle.handleId}`);
}
function listHandles(options?: DirectoryListHandlesOptions): PagedAsyncIterableIterator<HandleItem, DirectoryListHandlesResponse, PageSettings>

المعلمات

options
DirectoryListHandlesOptions

خيارات قائمة معالجة العملية.

asyncIterableIterator يدعم الترحيل.

المرتجعات

rename(string, DirectoryRenameOptions)

إعادة تسمية دليل. تدعم واجهة برمجة التطبيقات هذه فقط إعادة تسمية دليل في نفس المشاركة.

function rename(destinationPath: string, options?: DirectoryRenameOptions): Promise<{ destinationDirectoryClient: ShareDirectoryClient, directoryRenameResponse: DirectoryRenameResponse }>

المعلمات

destinationPath

string

تحديد مسار الوجهة لإعادة التسمية إليه. سيتم ترميز المسار لوضعه في عنوان URL لتحديد الوجهة.

options
DirectoryRenameOptions

خيارات لعملية إعادة التسمية.

المرتجعات

Promise<{ destinationDirectoryClient: ShareDirectoryClient, directoryRenameResponse: DirectoryRenameResponse }>

بيانات الاستجابة لعملية إعادة تسمية الملف.

مثال على الاستخدام:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const destinationPath = "<destination path>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

await directoryClient.rename(destinationPath);

setMetadata(Metadata, DirectorySetMetadataOptions)

تحديث بيانات التعريف المعرفة من قبل المستخدم للدليل المحدد.

راجع https://learn.microsoft.com/rest/api/storageservices/set-directory-metadata

function setMetadata(metadata?: Metadata, options?: DirectorySetMetadataOptions): Promise<DirectorySetMetadataResponse>

المعلمات

metadata
Metadata

إذا لم يتم توفير بيانات تعريف، فستتم إزالة جميع بيانات تعريف الدليل الموجودة

options
DirectorySetMetadataOptions

خيارات لعملية تعيين بيانات التعريف للدليل.

المرتجعات

بيانات الاستجابة لعملية بيانات تعريف مجموعة الدليل.

setProperties(DirectoryProperties)

تعيين خصائص على الدليل.

راجع https://learn.microsoft.com/rest/api/storageservices/set-directory-properties

function setProperties(properties?: DirectoryProperties): Promise<DirectorySetPropertiesResponse>

المعلمات

properties
DirectoryProperties

المرتجعات