من حجم یک دایرکتوری رو میخوام
من یه پوشه در sdcard دارم به اسم ScreenRecorder ، حالا میخوام تو برنامم چک کنم که اگر فایل با پسوند MP4 در حال افزایش هست یعنی در حال افزایش حجم هست تو برنامم فلان کارو انجام بدم.
در کل مشکل من اینه که من از برنامه SCR Screen Recorder Pro در برنامم برای ضبط از صفحات برنامم استفاده میکنم، و من میخوام دکمه ضبط اون برنامه رو مدیریت کنم ، اما متاسفانه چون اون یک برنامه دیگه هست و من به اون هیچ دسترسی ندارم، تنها را فهمیدن اینکه اون برنامه در حال ضبط هست یا نه اینه که تو اون پوشه ایی که فایل ام پی فور یا همون ویدیو تولید میکنه چک کنی که اگه در حال تولید ویدیو و افزایش حجم یک ویدیو هست یعنی در حال ضبط هست و من متوجه بشم داره ضبط میکنه و فلان کار خودمو انجام بدم، حالا من چطوری بفهمم که تو پوشه ScreenRecorder یه فایل جدید تولید شده که اسمشم با توجه به تاریخ و زمان ضبط نامگذاری میشه و اون فایل در حال افزایش حجم هست،
خدا کنه متوجه شده باشید چی میخوام، دیگه میخوام سرمو به دیوار بزنم ، چون هر چی گفتمو کسی نفهمید چی میگم !!!
بذار سوالمو اینجوری بگم،
یه دکمه دارم که میخوام با کلیک کردن بر روش برام مقدار و یا حجم مثلا پوشه AminGames در SD را برام Toast کنه.
چیزهای زیادی تو نت پیدا کردم، اما نمیدونم مسیر پوشه و دایرکتوری مورد نظر رو کجاش باید بدم.
میشه کدشو برام بذارید؟
کسی که جواب نداد، خودم راست ریسش کردم.
مثلا میخوایم حجم پوشه Amin Zamani / Images را محاسبه و Toast کنیم ( حجم هر چیزی که داخل پوشه Images هست )
کافیه متد getSizeStart را صدا بزنیم تا اگه ساخته نشده ساخته بشه، این زیاد مهم نیست همینجوری گذاشتم و متد getSize را صدا بزنیم تا کاره حساب کتاب رو انجام بده و قبل از return متغیر size را به String تبدیل کنیم و در متدی دیگر صداش میزنیم، تا حجم این پوشه Toast بشه، حالا واسه استفاده های دیگه هم که باید به int تبدیلش کنی،
public String SizeFolder;
public void getSizeStart() { File folder = new File(Environment.getExternalStorageDirectory().toString() + "/Amin Zamani/Images"); folder.mkdirs(); getSize(folder); ShowToastLong(SizeFolder); } public long getSize(File file) { long size; if (file.isDirectory()) { size = 0; for (File child: file.listFiles()) { size += getSize(child); } } else { size = file.length(); } SizeFolder = size + ""; return size; }
با تشکر...
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .