في حين أنه يمكن تنفيذ الكثير من سلوك وعمليات التطبيق في التطبيق نفسه، بما في ذلك إمكانات التخزين المحدودة، فإن معظم التطبيقات تتطلب درجة محددة للوصول إلى الملفات على الجهاز. يتطلب كل من إنشاء الملفات والكتابة فيها، وتحديد الصور المحددة بالفعل، وتنزيل الملفات من مصدر متصل بالإنترنت درجة محددة لإدارة الملف أو المجلد. يضم AppStudio Framework مكونات عديدة تُستخدم لإنشاء المجلدات والملفات وتنظيمها والانتقال فيها.
إدارة المجلد
يوفر مكون AppFramework FileFolder أدوات لمعالجة مسارات المجلدات والملف والانتقال فيها وإنشائها وحذفها. إذا كان التطبيق يقوم بإنشاء أو تنزيل ملفات جديدة لأي نوع، فإن استخدام FileFolder قد يُعد هامًا للاحتفاظ ببنية الملف الداخلي للتطبيق بشكل مرتب وثابت.
تنشئ عينة الكود مجلدًا جديدًا في موقع محدد، وهو ما يعد مثاليًا إذا كان التطبيق سينشئ عددًا كبيرًا من الملفات التي يجب تجميعها معًا.
let fileFolder = AppFramework.fileFolder("~/ArcGIS/Example App"); //Directs FileFolder towards a location within named user directory
let newFileFolder = fileFolder.folder("Bruce"); //Creates a folder object by the name Bruce
let result = newFileFolder.makeFolder(); //Creates folder at the location described by fileFolder.path
مسارات الملف القياسية
يوجد لدى أنظمة التشغيل مواقع قياسية محددة لحفظ أنواع محددة من الملفات. يوفر مكون StandardPaths وسيلة لاستخدام هذه المواقع كمسار مجلد افتراضي.
تفتح عينة الرمز مربع حوار ملف على الوجه الخصوص للمواقع الافتراضي للصور، باستخدام مكون StandardPaths تعداد standardLocations لإبلاغ وظيفة AppFramework resolvedPathUrl.
FileDialog {
title: qsTr("Open Photo")
folder: Qt.platform.os == "ios"
? "file:assets-library://"
: AppFramework.standardPaths.defaultFolder(StandardPaths.PicturesLocation).url
onAccepted: {
imageObject.load(fileUrl);
}
}
يوجد لدى StandardPaths أيضًا طرق لتحديد ما إذا كان بالإمكان الكتابة في مجلد أو موقع، وهو ما يعد مفيدًا لتكوين تطبيق للكتابة في موقع مناسب.
إنشاء ملف والكتابة فيه
وإضافةً إلى إنشاء مجلدات والانتقال فيها، يمكن أيضًا استخدام مكون FileFolder لإنشاء نص بسيط وملفات JSON. ستعمل أيضًا إضافة الخط التالي إلى أحداث onClicked في عينة إنشاء المجلد أعلاه على إنشاء ملف نصي ضمن المجلد:
fileFolder.writeTextFile("TestFile.txt", "Contents of the file")
ومع ذلك، يمكن فقط لـ FileFolder إنشاء الملف أولاً، ويتعذر قراءته أو الكتابة فيه بعد الإنشاء. وللقيام بذلك، يجب استخدام مكون File، وهو مكون يستخدم خصيصًا للتعامل مع الملفات النصية بهذه الطريقة.
تمثل عينة الكود حقلاً نصيًا يمكن استخدامه للكتابة في الملف النصي المنشأ مُسبقًا. يتم استخدام مكون FileInfo والمستخدم لإرجاع المعلومات عن ملف، في هذه الحالة لتحديد موقع الملف النصي بشكل موثوق.
FileInfo {
id: fileInfo
filePath: "~/ArcGIS/Apps/SampleApp/TestFile.txt" //Instantiates FileInfo to locate the file
}
function saveText(text) {
let fileFolder = fileInfo.folder;
fileFolder.makeFolder();
let file = AppFramework.file(fileInfo.filePath);
file.open(File.OpenModeReadWrite)
file.write(text);
file.close();
}
يرجى العلم أن مكون File هو محرر نص عادي. وهو ما يعني أن النص المُنسّق، وكذلك السياق غير النصي، لن يقرأ أو يعرض بشكل صحيح. إلا أنه ومع ذلك، لا يزال ذلك ممكنًا للملف.