مدیریت فایل در سیستم عامل کروم

مدیریت فایل به شما امکان می‌دهد ChromeOS را طوری پیکربندی کنید که افزونه شما بتواند فایل‌ها را با استفاده از منوی «باز کردن» از منوی فایل یا منوی «باز کردن با» از منوی زمینه باز کند. پس از باز شدن، داده‌های فایل را با استفاده از API «راه‌اندازی مدیریت‌کننده » پلتفرم وب پردازش می‌کنید. سپس از APIهای استاندارد پلتفرم وب برای نمایش یا مدیریت فایل استفاده خواهید کرد.

یک مدیریت‌کننده فایل به منوی باز کردن ChromeOS اضافه شد.
یک مدیریت‌کننده فایل به منوی باز کردن ChromeOS اضافه شد.

در دسترس بودن در افزونه‌ها

کروم او اس ۱۲۰ یا بالاتر.

مجوزها

برای مدیریت فایل‌ها نیازی به مجوز نیست.

مانیفست

شما باید آرایه "file_handlers" را به فایل manifest.json اضافه کنید.

زمینه‌های پشتیبانی

این API می‌تواند در افزونه‌های خدمات، پنجره‌های بازشو، پنل‌های جانبی یا اسکریپت‌های محتوا استفاده شود.

پیکربندی یک مدیریت کننده فایل

هر عضو از "file_handlers" - به معنی هر file handler - نوع یا انواع فایلی را که باید توسط یک صفحه افزونه خاص مدیریت شود، مشخص می‌کند.

کنترل‌کننده‌هایی که شما مشخص می‌کنید به پنجره‌ی فایل‌های ChromeOS، به طور خاص به منوهای Open و Open with اضافه می‌شوند. آن‌ها فقط زمانی در این منوها ظاهر می‌شوند که کاربر فایلی با پسوند خاص را انتخاب کند. به عنوان مثال، اگر یک کنترل‌کننده‌ی فایل .txt را مشخص کند، منوهای ChromeOS فقط زمانی آن کنترل‌کننده را نشان می‌دهند که فایلی با آن پسوند انتخاب شده باشد.

پردازش یک فایل

کنترل‌کننده فایل، یک فایل HTML است که در افزونه شما قرار دارد. وقتی کاربر کنترل‌کننده شما را از یک منو انتخاب می‌کند، فایل HTML در یک تب جدید باز می‌شود. پردازش فایل، چه آن را نمایش دهید و چه به روش دیگری از آن استفاده کنید، با جاوا اسکریپت و با استفاده از APIهای مناسب پلتفرم وب انجام می‌شود. کد پردازش باید در یک فایل جاوا اسکریپت جداگانه باشد و از طریق یک تگ <script> گنجانده شود و همچنین باید در افزونه شما باشد. فایل اسکریپت از رابط LaunchQueue از API Launch Handler برای دریافت یک شیء FileSystemFileHandle استفاده می‌کند.

مثال

مثال زیر نحوه دریافت یک شیء FileSystemFileHandle را با استفاده از رابط LaunchQueue نشان می‌دهد. برای مشاهده نحوه مدیریت فایل در عمل، نسخه آزمایشی مدیریت فایل (File Handling Demo) را نصب کنید.

if ('launchQueue' in window) {
  launchQueue.setConsumer(async launchParams => {
    if (!launchParams.files || !launchParams.files.length) { return; }
    const fileHandle = launchParams.files[0];
  });
}
``````