By using this site, you agree to the Privacy Policy and Terms of Use.
موافق
عرب فلاترعرب فلاتر
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
قراءة: شرح استخدام path_provider في Flutter
شارك
تسجيل الدخول
إشعار أظهر المزيد
Aa
عرب فلاترعرب فلاتر
Aa
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
Search

أقسام الموقع

استكشف جميع أقسام الموقع
قسم Dart في موقع عرب فلاتر

Dart

59 مقالات
قسم Widgets في موقع عرب فلاتر

Widgets

104 مقالات
قسم Packages في موقع عرب فلاتر

Packages

19 مقالات
قسم Tutorials في موقع عرب فلاتر

Tutorials

22 مقالات

أخر المواضيع

استكشف أخر المواضيع المنشورة
شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
Tutorials

شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا

5
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
Tutorials

حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر

10
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
Tutorials

أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات

17
لديك حساب موجود؟ تسجيل الدخول
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
© جميع الحقوق محفوظة موقع عرب فلاتر 2023
عرب فلاتر > Packages > شرح استخدام path_provider في Flutter
Packages

شرح استخدام path_provider في Flutter

عبدالله يوسف
أخر تحديث 2024/11/15
بواسطة عبدالله يوسف اضف تعليق 10 دقيقة للقراءة 4914 مشاهدات 8
شارك
شرح استخدام path_provider في Flutter
شرح استخدام path_provider في Flutter
شارك

خدماتنا البرمجية – عرب فلاتر🚀

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

تعتبر حزمة path_provider واحدة من الحزم الأساسية والهامة في بيئة تطوير تطبيقات Flutter. تهدف هذه الحزمة إلى توفير واجهة سهلة الاستخدام للوصول إلى المسارات المختلفة على جهاز المستخدم، مثل المسارات المؤقتة والمسارات الدائمة ومسارات التخزين الخارجي. بفضل حزمة path_provider، يمكن للمطورين الوصول بسهولة إلى أماكن التخزين المحلية والخارجية والمشتركة على الجهاز بطريقة متوافقة مع مختلف أنظمة التشغيل.

المحتويات
أهمية حزمة path_provider:خصائص حزمة path_provider:1. getTemporaryDirectory():2. getApplicationSupportDirectory():3. getLibraryDirectory():4. getApplicationDocumentsDirectory():5. getApplicationCacheDirectory():6. getExternalStorageDirectory():7. getExternalStorageDirectories():8. getExternalCacheDirectories():9. getDownloadsDirectory():مثال كامل لاستخدام حزمة path_provider:

أهمية حزمة path_provider:

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

“اقرأ أيضاً: شرح استخدام ويدجت TextFormField في فلاتر“


خصائص حزمة path_provider:

تحتوي حزمة path_provider على عدد من الخصائص الرئيسية التي يمكن استخدامها في تطبيقات Flutter. فيما يلي شرح لكل خاصية مع بعض الأكواد التوضيحية:

1. getTemporaryDirectory():

تستخدم هذه الخاصية للوصول إلى المسار الذي يتم فيه تخزين الملفات المؤقتة على الجهاز. يمكن استخدام هذا المسار لتخزين الملفات التي تحتاج إلى استخدامها لفترة مؤقتة فقط وتُحذف تلقائيًا بعد ذلك.

استخدام getTemporaryDirectory() يتطلب استيراد حزمة path_provider واستخدام كائن من نوع Directory للوصول إلى المسار كما يلي:

import 'dart:io';
import 'package:path_provider/path_provider.dart';

void main() async {
  Directory tempDir = await getTemporaryDirectory();
  String tempPath = tempDir.path;
  print('Temporary Directory: $tempPath');
}

2. getApplicationSupportDirectory():

تستخدم هذه الخاصية للوصول إلى المسار الذي يتم فيه تخزين الملفات الداعمة (Support) المرتبطة بالتطبيق على الجهاز. يمكن استخدام هذا المسار لتخزين الملفات التي تحتاج إلى الاحتفاظ بها في مجلد الدعم، مثل الملفات المؤقتة أو السجلات.

استخدام getApplicationSupportDirectory() يتطلب استيراد حزمة path_provider واستخدام كائن من نوع Directory للوصول إلى المسار كما يلي:

import 'dart:io';
import 'package:path_provider/path_provider.dart';

void main() async {
  Directory appSubDir = await getApplicationSupportDirectory();
  String appSubPath = appSubDir.path;
  print('Application Support Directory: $appSubPath');
}

3. getLibraryDirectory():

تستخدم هذه الخاصية للوصول إلى المسار الذي يتم فيه تخزين الملفات المكتبية (Library) المرتبطة بالتطبيق على الجهاز. يمكن استخدام هذا المسار لتخزين الملفات التي تحتاج إلى الاحتفاظ بها في مجلد المكتبة، مثل قواعد البيانات أو الملفات المؤقتة.

استخدام getLibraryDirectory() يتطلب استيراد حزمة path_provider واستخدام كائن من نوع Directory للوصول إلى المسار كما يلي:

import 'dart:io';
import 'package:path_provider/path_provider.dart';

void main() async {
  // getLibraryDirectory is not supported on Android
  Directory libraryDir = await getLibraryDirectory();
  String libraryPath = libraryDir.path;
  print('Library Directory: $libraryPath');
}

4. getApplicationDocumentsDirectory():

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

استخدام getApplicationCacheDirectory() يتطلب استيراد حزمة path_provider واستخدام كائن من نوع Directory للوصول إلى المسار كما يلي:

import 'dart:io';
import 'package:path_provider/path_provider.dart';

void main() async {
  Directory appDocDir = await getApplicationDocumentsDirectory();
  String appDocPath = appDocDir.path;
  print('Application Documents Directory: $appDocPath');
}

“اقرأ أيضاً: شرح استخدام SharedPreferences في Flutter“

5. getApplicationCacheDirectory():

تستخدم هذه الخاصية للوصول إلى المسار الذي يتم فيه تخزين ذاكرة التخزين المؤقتة المرتبطة بالتطبيق على الجهاز. يمكن استخدام هذا المسار لتخزين الملفات المؤقتة التي يحتاج إليها التطبيق لفترة قصيرة من الوقت. يتم حذف الملفات الموجودة في هذا المسار تلقائيًا بواسطة النظام بشكل دوري.

استخدام getApplicationCacheDirectory() يتطلب استيراد حزمة path_provider واستخدام كائن من نوع Directory للوصول إلى المسار كما يلي:

import 'dart:io';
import 'package:path_provider/path_provider.dart';

void main() async {
  Directory appCacheDir = await getApplicationCacheDirectory();
  String appCachePath = appCacheDir.path;
  print('Application Cache Directory: $appCachePath');
}

6. getExternalStorageDirectory():

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

استخدام getExternalStorageDirectory() يتطلب استيراد حزمة path_provider واستخدام كائن من نوع Directory للوصول إلى المسار كما يلي:

import 'dart:io';
import 'package:path_provider/path_provider.dart';

void main() async {
  Directory? extDir = await getExternalStorageDirectory();
  String extPath = extDir!.path;
  print('External Storage Directory: $extPath');
}

7. getExternalStorageDirectories():

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

استخدام getExternalStorageDirectories() يتطلب استيراد حزمة path_provider واستخدام قائمة من أنواع Directory للوصول إلى المسارات كما يلي:

import 'dart:io';
import 'package:path_provider/path_provider.dart';

void main() async {
  List<Directory>? externalStorageDirs = await getExternalStorageDirectories();
  for (Directory dir in externalStorageDirs!) {
    String externalStoragePath = dir.path;
    print('External Storage Directory: $externalStoragePath');
  }
}

8. getExternalCacheDirectories():

تستخدم هذه الخاصية للوصول إلى قائمة بجميع المسارات المتاحة للذاكرة المؤقتة الخارجية على الجهاز. يمكن استخدام هذه القائمة للوصول إلى الملفات الموجودة في مجلدات الذاكرة المؤقتة الخارجية المختلفة.

استخدام getExternalCacheDirectories() يتطلب استيراد حزمة path_provider واستخدام قائمة من أنواع Directory للوصول إلى المسارات كما يلي:

import 'dart:io';
import 'package:path_provider/path_provider.dart';

void main() async {
  List<Directory>? externalCacheDirs = await getExternalCacheDirectories();
  for (Directory dir in externalCacheDirs!) {
    String externalCachePath = dir.path;
    print('External Cache Directory: $externalCachePath');
  }
}

9. getDownloadsDirectory():

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

استخدام getDownloadsDirectory() يتطلب استيراد حزمة path_provider واستخدام كائن من نوع Directory للوصول إلى المسار كما يلي:

import 'dart:io';
import 'package:path_provider/path_provider.dart';

void main() async {
  Directory? downloadsDir = await getDownloadsDirectory();
  String downloadsPath = downloadsDir!.path;
  print('Downloads Directory Path: $downloadsPath');
}

“اقرأ أيضاً: شرح استخدام ويدجت CircleAvatar في فلاتر“


مثال كامل لاستخدام حزمة path_provider:

لنلقِ نظرة على مثال يوضح كيفية استخدام حزمة path_provider في تطبيق Flutter للوصول إلى المسارات المختلفة.

أولا قم بإضافة الحزمة إلى ملف pubspec.yaml الخاص بتطبيقك:

dependencies:
  flutter:
    sdk: flutter
  path_provider: ^2.1.1

ثم قم باستدعاء الحزمة عن طريق تشغيل الأمر flutter pub get في مجلد مشروعك. الآن يمكننا استخدام حزمة path_provider في التطبيق. قم بإنشاء ملف main.dart واستخدم الكود التالي:

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Path Provider Example',
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Path Provider Example'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              //1
              ElevatedButton(
                onPressed: () async {
                  Directory tempDir = await getTemporaryDirectory();
                  String tempPath = tempDir.path;
                  print('Temporary Directory: $tempPath');
                },
                child: const Text('Get Temporary Directory'),
              ),
              //2
              ElevatedButton(
                onPressed: () async {
                  Directory appSubDir = await getApplicationSupportDirectory();
                  String appSubPath = appSubDir.path;
                  print('Application Support Directory: $appSubPath');
                },
                child: const Text('Get Application Support Directory'),
              ),
              //3
              // getLibraryDirectory is not supported on Android
              ElevatedButton(
                onPressed: () async {
                  Directory libraryDir = await getLibraryDirectory();
                  String libraryPath = libraryDir.path;
                  print('Library Directory: $libraryPath');
                },
                child: const Text('Get Library Directory Directory'),
              ),
              //4
              ElevatedButton(
                onPressed: () async {
                  Directory appDocDir =
                      await getApplicationDocumentsDirectory();
                  String appDocPath = appDocDir.path;
                  print('Application Documents Directory: $appDocPath');
                },
                child: const Text('Get Application Documents Directory'),
              ),
              //5
              ElevatedButton(
                onPressed: () async {
                  Directory appCacheDir = await getApplicationCacheDirectory();
                  String appCachePath = appCacheDir.path;
                  print('Application Cache Directory: $appCachePath');
                },
                child: const Text('Get Application Cache Directory'),
              ),
              //6
              ElevatedButton(
                onPressed: () async {
                  Directory? extDir = await getExternalStorageDirectory();
                  String extPath = extDir!.path;
                  print('External Storage Directory: $extPath');
                },
                child: const Text('Get External Storage Directory'),
              ),
              //7
              ElevatedButton(
                onPressed: () async {
                  List<Directory>? externalStorageDirs =
                      await getExternalStorageDirectories();

                  for (Directory dir in externalStorageDirs!) {
                    String externalStoragePath = dir.path;
                    print('External Storage Directory: $externalStoragePath');
                  }
                },
                child: const Text('Get External Storage Directories'),
              ),
              //8
              ElevatedButton(
                onPressed: () async {
                  List<Directory>? externalCacheDirs =
                      await getExternalCacheDirectories();

                  for (Directory dir in externalCacheDirs!) {
                    String externalCachePath = dir.path;
                    print('External Cache Directory: $externalCachePath');
                  }
                },
                child: const Text('Get Path Of External Cache Directories'),
              ),
              //9
              ElevatedButton(
                onPressed: () async {
                  Directory? downloadsDir = await getDownloadsDirectory();
                  String downloadsPath = downloadsDir!.path;
                  print('Downloads Directory Path: $downloadsPath');
                },
                child: const Text('Get Downloads Directory'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

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

“اقرأ أيضاً: شرح استخدام FlutterToast في Flutter“


تعد حزمة path_provider أداة قوية ومهمة في تطوير تطبيقات Flutter. توفر الحزمة واجهة سهلة الاستخدام للوصول إلى المسارات المختلفة على جهاز المستخدم، مما يتيح للمطورين تخزين واسترجاع الملفات بطريقة فعالة وموثوقة. من خلال الاستفادة من خصائص مثل getTemporaryDirectory()، getApplicationDocumentsDirectory()، getExternalStorageDirectory() وغيرهم.

Arab Flutter Community 🚀

انضم إلى مجتمع Arab Flutter
شارك هذا المقال
فيسبوك تويتر Whatsapp Whatsapp لينكد ان تلغرام نسخ الرابط
Avatar of عبدالله يوسف
بواسطة عبدالله يوسف Founder and CEO at ArabFlutter
تابع:
أنا عبدالله يوسف، مهندس مصري ومؤسس موقع عرب فلاتر، ملهم بشغف التكنولوجيا والإبداع. كمصمم مواقع ومبرمج تطبيقات موبايل باستخدام Flutter، أستمتع بخلق عوالم رقمية فريدة ومبتكرة. تتجلى مواهبي في تصميم وتطوير واجهات مستخدم تفاعلية، حيث يمزج الجانب الجمالي بالدقة الهندسية. ما يميزني هو إلمامي الواسع بتقنيات البرمجة والتصميم، ومقدرتي على تطوير تطبيقات متنوعة عبر منصات مختلفة. أعتبر نفسي مبدعًا وملتزمًا، حيث أسعى دائمًا لتحقيق تحسين مستمر في مهاراتي وتقنياتي. أستمتع بتحديات العمل الجماعي وأؤمن بأهمية الابتكار والتطور. بفضل إبداعي والتزامي، أسعى لتقديم حلول فعّالة تلبي توقعات العملاء وتفوق عن المألوف.
اترك تعليقا اترك تعليقا

اترك تعليقاً إلغاء الرد

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
Tutorials
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
Tutorials
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
Tutorials
طريقة انشاء المجلدات باستخدام Dart
طريقة انشاء المجلدات باستخدام كود Dart تلقائيًا
Tutorials

مقالات ذات الصلة

اطلع على المزيد من المقالات المتعلقة بهذا الموضوع!
شرح استخدام حزمة GDPR Admob في Flutter
Packages

شرح استخدام حزمة GDPR Admob في فلاتر 2024

10 1
شرح استخدام حزمة Permission Handler في Flutter
Packages

شرح استخدام حزمة Permission Handler في Flutter

9 1
شرح استخدام حزمة QuickAlert في Flutter
Packages

شرح استخدام حزمة QuickAlert في Flutter

6
شرح استخدام Cached Network Image في Flutter
Packages

شرح استخدام Cached Network Image في Flutter

3
شرح استخدام حزمة Device Preview في Flutter
Packages

شرح استخدام حزمة Device Preview في Flutter

4
شرح استخدام flutter_launcher_icons في Flutter
Packages

شرح استخدام flutter_launcher_icons في Flutter

4
أظهر المزيد
شعار موقع عرب فلاتر شعار موقع عرب فلاتر

About US

Quick Links

  • خدماتنا
  • من نحن
  • اتصل بنا
  • اتفاقية استخدام
  • سياسة الخصوصية
© جميع الحقوق محفوظة موقع عرب فلاتر 2023
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
adbanner
تم اكتشاف مانع إعلانات
مرحبًا، يرجى إيقاف مانع الإعلانات. الإعلانات تُساهم في دعم موقعنا وتغطية جزء من تكاليف الاستضافة وتطوير المحتوى. شكرًا لتفهمك ودعمك.
Okay, I'll Whitelist
Welcome Back!

Sign in to your account

هل نسيت كلمة المرور؟