سطح مقاله: پیشرفته
منبع: انجمن هاي فارس وب [ جهت مشاهده لينك عضو شويد ! ]
با سلام
یک اموزش کوچیک براتون اماده کردم که تقدیم شما می کنم .امیدوارم کاربردی برای شما داشته باشه و مورد استفاده قرار بگیره .
موضوع اموزش کار با فایل ها و پوشه هاست که در قالب یک مثال ارائه می شود.
میخواهیم یک دکمه داشته باشیم که هر وقت کلیک شد پنجره Browse رو باز کنه و پس از ان که شما پوشه
مورد نظر خودتون رو انتخاب کردید لیست فایل های داخل ان به همراه حجمشان و هم چنین پوشه های داخل ان در یک دیتا گرید نمایش داده بشه.
ابتدا یک پروژه جدید باز می کنیم و داخل ان یک Textarea و یک Datagrid و یکButton قرار می دهیم.
Button جهت انتخاب پوشه مورد نظر
DataGrid جهت نمابش خروجی
Textarea جهت نمایش ادرس پوشه انتخاب شده.
btn نام دکمه است.
dg نام دیتا گرید است.
سپس کلاس های مورد نیاز رو به داخل فلش Import می کنیم:
import flash.events.Event;
import flash.filesystem.File;
import fl.controls.dataGridClasses.DataGridColumn;
import fl.data.DataProvider;
در مرحله بعدی بایستی متغیر های لازم را ایجاد ومقدار دهی کنیم. توضیحات لازم درمورد کد ها در ادامه داده می شود:
var fld:File;
var dp:DataProvider=new DataProvider()
var c1:DataGridColumn= new DataGridColumn();
c1.headerText = "file name";
c1.dataField = "name";
dg.addColumn(c1);
var c2:DataGridColumn= new DataGridColumn();
c2.headerText = "file size(KB) ";
c2.dataField = "size";
dg.addColumn(c2);
خط اول : این متغیر بعدا جهت باز کردن پنجره و رویداد انتخاب یک پوشه مورد استفاده قرار می گیرد .
خط دوم را جهت بازیابی داده ها از کاربر و سازماندهی ان ها و درج در دیتا گرید استفاده می کنیم.
مفهوم خطوط بعدی:
توسط خطوط خواهیم توانست دو ستون یه دیتا گرید و با مقادیر مشخص اضافه کنیم .از جمله اسم ستون و فیلد داده که جهت کار باDataProvider ضروری است.علت ان هم این است که چون فایل های بازیابی شده ما فعلا دارای دو Proprty با نام هایsize,Name است پس این دو مقدار باید در دیتا گرید لحاظ شوند.
(به عبارت دیگر ما می خواهیم دو خصوصیت نام و اندازه فایل و پوشه رو نمایش بدیم پس دو ستون برای دیتا گرید ایجاد کرده و نام و اندازه را به هریک از ان ها نسبت می دهیم)
توسط چند خط زیر می توانیم پنجره Brwose را با زکرده و پوشه مورد نظر را انتخاب نماییم.
توجه کنید که پس از انتخاب پوشه رویداد SELECT اجرا شده که به موجب ان تابع dir_selected را فراخوانی می کند.
btn.addEventListener(MouseEvent.CLICK,show1);
function show1(r:Event):void
{ fld=new File();
fld.addEventListener(Event.SELECT,dir_selected);
fld.browseForDirectory("please select your directory !");
}
می رسیم سراغ تابع dir_selected
function dir_selected(e:Event):void
{
1dp.removeAll();
2output.text = "folder address :" + fld.nativePath + "\n";
3var dc:Array = fld.getDirectoryListing();
4var item:File;
5var cn:Number = -1;
6for each (item in dc)
{
7 if (item.isDirectory)
{
cn++;
8 dp.addItemAt(item,cn);
}
else
{
9 dp.addItem(item);
}
}
10 dg.dataProvider = dp;
}
1 ابتدا باید داده هایی که قبلا جمع اوری شده را پاک کنیم.
2 ادرس پوشه منتخب را نمایش خواهد داد.
3 لیست پوشه ها وفایل های داخل پوشه منتخب را در ارایه میریزیم.
4 در داخل حلقه جهت بررسی ایتم های ارایه استفاده می شود که ممکن است هر ایتم‘ پوشه باشد یا فایل.
5 به هنگام اضافه کردن داده به دیتا گرید از اندیس صفر شروع می کنیم. بنابراین فعلا مقدار 1- را لحاظ میکنیم .در صورتی که شرط داخل حلقه درست باشد(ان ایتم پوشه باشد) یک واحد به ان اضافه خواهد شد.
6 حلقه جهت بررسی تک تک ایتم ها
7و 8 و9 اگر ان ایتم یک پوشه باشد ابتدا یک واحد به شمارنده افزوده شده و سپس ان ایتم در اندیسی که توسط cn مشخص شده است درج می گردد.
این کار فقط جهت نمایش مرتب و منظم فایل ها و پوش هاست
10 انتساب داده های جمع اوری شده به دیتا گرید.
موفق باشید.
این مقاله برای اولین بار در انجمنهای فارس وب توسط این کاربر نوشته شده است. لطفا" با کپی های بدون منبع مطالب، زحمات نویسندهی آن مطلب را خدشه دار نکنید .