السلام عليكم تحية طيبة للجميع كيف يمكننى اخذ نسخة احتياطية من قاعدة البيانات وحفظة فى اى مجلد على الهاتف
كتبت هذا الكود ولاكن يظهر خطا انه لايمكن الوصول الى ملف قاعدة البيانات
import { openDatabase } from 'react-native-sqlite-storage';
const [db, setDb] = useState(openDatabase({ name: 'applicationdiftare.db',location: 'default'}));
try {
const AppFolder = 'Business_Coustomers';
const DirectoryPath = RNFS.ExternalStorageDirectoryPath + '/Documents/' + AppFolder;
mkdir(DirectoryPath);
//هنا يتم النشاء الملف بنجاح
المشكلة هنا
لا يمكن الوصول الى مسار قاعدة البيانات
const sqliteDbPath = RNFS.DocumentDirectoryPath + '/applicationdiftare.db'; // مسار قاعدة البيانات
RNFS.copyFile(sqliteDbPath, '/storage/emulated/0/Documents/backup_database.db')
} catch (error) {
console.log('error')
}
حسب قراءتي لمشكلتك فهي تتمحور حول إذن الوصول إلى مسار الذاكرة الخارجية على الهاتف، لذلك عليك أن تتأكد من أن التطبيق يملك الإذن اللازم للوصول إلى مسار الذاكرة الخارجية. أي طلب إذن: WRITE_EXTERNAL_STORAGE في ملف التهيئة الخاص بالتطبيق، (AndroidManifest.xml) والتحقق من أن المستخدم منح الإذن المطلوب.
يمكننا استخدام مكتبة "react-native-permissions" لطلب الإذن بشكل ديناميكي في وقت التشغيل، لكن مع التأكد أيضا من تشغيل الأمر `requestExternalStorage` قبل محاولة الوصول إلى مسار الذاكرة الخارجية.
التعليقات