بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

نمایش فایل های یک فولدر(حل نشده)

مدیریت گفتگو
amin2525 11 سال پیش
آخرین تغییر: 11 سال پیش

سلام

میخوام یه کد بنویسم که بتونم همه ی فایل های موجود در یک فولدر رو به کاربر نمایش بدم

و وقتی روی فایل ها کلیک میشه ، بره داخل اون فایل که حالا یا فیلمه و یا عکس...

اگر میشه کمکم کنید

نظرات

کاشی زاده 11 سال پیش
دوست گرامی ، لطفا از درج سوالات تکراری جدا خودداری فرمایید .
کاشی زاده 11 سال پیش
ببخشید ، اشتباه برای تاپیک شما اینو درج کردم ، مشکلی نیست شما به کارتون ادامه بدید.

پاسخ‌ها 2

کاشی زاده 11 سال پیش

باید در ابتدا لیست فایل های موجود در یک دایرکتوری رو بگیرید :

  public static File[] getDirectoryFiles(String dirPath) {

File dir = new File(dirPath);
if (dir.exists()) {
File files[] = dir.listFiles();
return files;
}
return null;
}

بعد داخل لیست ویو اسم فایل ها رو نشون بدید و بعد از کلیک شدن روی اون ها با توجه به فورمت فایل ها اونا نمایش بدید.

  public static String getFileExtension(File file) {
int lastDotIndex = file.getName().lastIndexOf(".");
String extension = file.getName().substring(lastDotIndex);
return extension;
}

اگر هم  ابزار نمایش رو ننوشتید و خواستید از برنامه های موجود استفاده کنید ، با استفاده از Intent این کار ممکن هست .

نظرات

amin2525 11 سال پیش
دوست عزیز میشه کامل تر بهم توضیح بدید؟با این کد موفق نشدم اگر کامل تر توضیح بدید خیلی ممنون میشم
کاشی زاده 11 سال پیش
با تیکه کد اول آدرس فولدر مورد نظر رو میدید و اونم بهتون لیستی از فایل هارو بر میگردونه ، با استفاده از متدهایی مثل getName اسم هر فایل رو میتونید بگیرید و داخل لیست ویو اسم فایل ، حجمشون تاریخ مودیفایشون و یکسری اطلاعات از این دسته رو نشون میدید ، متد دوم هم برای گرفتن فورمت فایل ها هست که مثلا شما یک فایل دارید به اسم appcompat.zip به شما فورمت فایل که zip هست رو برمگردونه .
amin2525 11 سال پیش
ممنون فقط الان من چگونه این ها رو داخل Listview قرار بدم؟
کاشی زاده 11 سال پیش
یه ساختمان داده درست کنید برای فایل ها بعد با استفاده از یه حلقه همه فایل هایی که پیدا کردین رو بریزید داخل یک آرایه از اون ساختمان داده ای که ایجاد کردید در نهایتم آرایه رو به ادپتر بدید.
raeesi 11 سال پیش
مرسي محمد حسين توضيحاتي بسيار كامل ميديد
amin2525 11 سال پیش
خیلی ممنون ، فقط اینکه آدرس فولدرم رو باید در کجا قرار بدم؟
amin2525 11 سال پیش

دوستان از یه راه خیلی خوب دارم میرم و فایل های یک فولدر رو میتونم بگیرم 
ولی نمیدونم چجوری باید بعد از کلیک بر روی هر فایل وارد آن بشم

لطفا کمکم کنید

در قسمت جاوا این کد رو نوشتم:

فایل xml ام هم فایل simple_list_item_1 هست

 public class FileList extends ListActivity
{

    private File         file;
    private List<String> myList;


    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        myList = new ArrayList<String>();

        String root_sd = Environment.getExternalStorageDirectory().toString();
        file = new File(root_sd + "/download");
        File list[] = file.listFiles();

        for (int i = 0; i < list.length; i++)
        {
            myList.add(list[i].getName());
        }

        setListAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, myList));

    }

    }


نظرات

amin2525 11 سال پیش
چرا سوالم باید حذف بشه؟لازم دارم جوابشو...
amin2525 11 سال پیش
الان فقط باید با یه Intent بگم که رو هر کدوم کلیک شد، بره داخل اون برنامه، ولی این Intent را کجا معرفی کنم و دقیقا چی بگم؟
کاشی زاده 11 سال پیش
باید بگردید داخل گوگل دنبال Intent برای اجرا فایل های مختلف ، مثلا برای فایل apk شما نیاز دارید به یه اینتنت جهت نصب یا براش پخش ویدئو نیاز دارید به Intent مربوط به خودش اینا رو پیدا میکنید با استفاده از متد هایی که بالا براتون نوشتم و قرار دادن شرط مربوطه هر فایل رو با intent مربوطش اجرا میکنید .
amin2525 11 سال پیش
درست، فقط این Intent دقیقا باید کجای اید کدم قرار بگیره؟داخل حلقه ی for ؟
کاشی زاده 11 سال پیش
داخل Onclick قرار میگیره ، که شما میتونید Onclick رو باتوجه به نوع ادپتر بنویسید .
amin2525 11 سال پیش
دوستان من موفق نشدم، کسی میتونه کدش رو بزاره ببینم؟
amin2525 11 سال پیش
دوستان کسی میتونه کمک کنه؟

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .