هل لا يعمل file.isfile و file.isdirectory بشكل صحيح في Appcelerator Titanium؟
-
30-09-2019 - |
سؤال
أنا أعمل على تطبيق iPad باستخدام AppCelarator Titanium وأحتاج إلى التكرار على محتوى الدليل وتحديد نوع العناصر الموجودة ، سواء كان ملفًا أو دليلًا.
هذا ما لدي حتى الآن:
dirFullPath = '/full/path/to/directory';
var dir = Titanium.Filesystem.getFile(dirFullPath);
var dirItems = dir.getDirectoryListing();
for ( var i=0; i<dir.length; i++ ) {
itemFullPath = dirFullPath
+ Titanium.Filesystem.getSeparator()
+ dir[i].toString();
testItem = Titanium.Filesystem.getFile(itemFullPath);
if ( testItem.exists() ) {
alert(itemFullPath + ' exists.'); // item exists, alert box appears
if ( testItem.isDirectory ) {
alert(itemFullPath + ' is a directory.'); // this code is never executed
}
else if ( testItem.isFile ) {
alert(itemFullPath + ' is a file.'); // this code is never executed
}
else {
alert(itemFullPath + ' is an unknown object.'); // this alert is always shown
}
}
}
أحصل دائمًا على مربع التنبيه الذي يقول "هو كائن غير معروف.". يبدو أن isfile و isdirectory لا يعملان بشكل صحيح ، أم فاتني شيء؟ هل يعاني أي شخص آخر من نفس المشكلة؟
شكرا على أي نصيحة!
المحلول
ما يلي يجب أن يعمل:
var isDirectory = function(f){
return f.exists() && f.getDirectoryListing() != null;
}
var isFile = function(f){
return f.exists() && f.getDirectoryListing() == null;
}
لا تنتمي إلى StackOverflow