آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

به دست آوردن لیست فایل ها و پوشه های (Folders) موجود در یک پوشه در حافظه خارجی (External Storage)، به صورت آرایه ای (Array) از جنس File (و همچنین شرح چگونگی تبدیل آنها به رشته (String))، در برنامه نویسی اندروید

فرض کنید در حافظه خارجی (External Storage)، یک پوشه با نام myFolder داریم و قصد داریم که لیست فایل ها و پوشه های (Folders) موجود در آن پوشه را به صورت آرایه ای (Array) از جنس File به دست آوریم، برای این منظور، گدهای زیر را می نویسیم :


File root = android.os.Environment.getExternalStorageDirectory();
File dir = new File (root.getAbsolutePath() + "/myFolder");
File[] list = dir.listFiles();

خط اول کدها برای به دست آوردن آدرس مسیر حافظه خارجی (External Storage) می باشد ( آموزش شماره 279 ).

دقت شود که در این روش، لیست فایل ها و پوشه های مخفی (که نام آنها با یک نقطه شروع می شود، آموزش شماره 365 ) نیز نمایش داده می شود.

اکنون فرض کنید بخواهیم مسیر کامل (absolute path) مربوط به اولین عنصر در آرایه (اولین فایل یا پوشه شناسایی شده) را به صورت یک رشته (String) به دست آوریم، برای این منظور، کد زیر را می نویسیم (از روش getAbsolutePath استفاده می کنیم) :


File root = android.os.Environment.getExternalStorageDirectory();
File dir = new File (root.getAbsolutePath() + "/myFolder");
File[] list = dir.listFiles();
File file = list[0];
String str = file.getAbsolutePath();

یا فرض کنید بخواهیم تنها نام (بدون ذکر مسیر) مربوط به اولین عنصر در آرایه (اولین فایل یا پوشه شناسایی شده) را به صورت یک رشته (String) به دست آوریم، برای این منظور، کد زیر را می نویسیم (از روش getName استفاده می کنیم) :


File root = android.os.Environment.getExternalStorageDirectory();
File dir = new File (root.getAbsolutePath() + "/myFolder");
File[] list = dir.listFiles();
File file = list[0];
String str = file.getName();
نکته

دقت شود که در صورت کدنویسی برای فرآیندی که نیاز به دسترسی به حافظه خارجی (External Storage) دارد، باید کدهای زیر درون AndroidManifest.xml نوشته شود (برای اجازه دادن برای نوشتن در حافظه خارجی و یا خواندن از حافظه خارجی) :


<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
نویسنده علیرضا گلمکانی
شماره کلید 2885
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 4 4 0
سمیر
۱۳۹۶/۰۶/۱۲
۰۸:۵۴

سلام.
تشکر از مطلب مفیدتون.
خواستم بدونم میشه همین مثال رو برای خوندن لیست یک فولدر روی سرور بزنید؟

admin
۱۳۹۶/۰۶/۱۲
۰۹:۳۱

سلام.
باید بر اساس زبان برنامه نویسی که بر روی سرور اینترنتی به کار می برید، فهرست فایل ها و پوشه های (Folders) موجود در یک پوشه بر روی سرور اینترنتی را به دست آورید (با اجرای کدها در یک صفحه موجود بر روی سرور اینترنتی).
به عنوان مثال، اگر از زبان PHP برای کار با سرور اینترنتی استفاده می کنید، برای به دست آوردن لیست فایل های موجود در یک پوشه (Folder)، با تابع scandir ، کلید زیر را بخوانید :



بنابراین شما یک صفحه در سرور اینترنتی خود قرار می دهید، که با استفاده از دستورات زبان برنامه نویسی مورد نظر شما، فهرست فایل ها و پوشه های (Folders) موجود در یک پوشه بر روی سرور اینترنتی را به دست آورده و سپس مثلا به شکل ساختار JSON آنها را در خروجی صفحه چاپ می کند.
بنابراین برنامه اندروید، آن صفحه از سرور را فراخوانی می کند و بر اساس اطلاعات خروجی آن بر اساس ساختار JSON ، فهرست فایل ها و پوشه ها (Folders) را استخراج می کند.
برای ارتباط بین سرور اینترنتی و برنامه اندروید، دسته کلید زیر را ببینید :



نکته :
دقت داشته باشید که به دلایل امنیتی، کاربران عادی نباید بتوانند فهرست فایل ها و پوشه های موجود در سرور اینترنتی شما را ببینند، مگر یک پوشه خاص که دیدن فهرست فایل های آن، مد نظر شما بوده است. بنابراین کدهای صفحه مورد نظر را به گونه ای ننویسید که هر شخصی بتواند فهرست فایل ها و پوشه های موجود در پوشه های مختلف سرور اینترنتی شما را به دست آورد.

سعید
۱۳۹۷/۰۸/۰۳
۲۲:۴۰

با سلام. کد هارو کپی کردم و پرمیشن هارو هم اضافه کردم. اما برنامه فورس کلوز میده. چرا؟

سعید
۱۳۹۷/۰۸/۰۹
۱۸:۴۵

با سلام. این کد ها اشتباه هستند. لطفا در محیط اندروید استودیو چک کنید سپس در سایت قرار بدید

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)