کپی کردن تعداد زیادی عکس در SD Card
سلام...
میخوام 250 تا عکس رو کپی کنم داخل SD Card...
برای اینکار کلاس HelperIO رو تعریف کردم ، بعد برای تست ، یکی از عکس ها رو کپی کردم داخل SD Card ، بعدش گالری رو اسکن کردم که عکس ها همون موقع نمایش داده بشن...
تا این جاش مشکلی نیست...
چند تا سوال :
1 - لازمه که قبل از Copy ، چک بشه که SD Card وجود داره یا نه ...!؟ مگه SD Card همون حافظه داخلی نیست ؟ پس مگه میشه وجود نداشته باشه !؟ آخه تو Stackoverflow بعضیا گفتن قبل از Copy باید بودن یا نبودن SD Card چک بشه !! لازمه !؟
2- سر امولاتور و گوشی که تست کردم ، در صورتی که یک فایل ( هم نام ) وجود داشته باشه ، بار دوم Replace میشه ...حالا میخواستم بدونم توی تموم دیوایس ها اینطوریه ؟ یا لازمه قبل از Copy چک بشه که اگه فلان فایل ( از نظر اسم ) وجود داشت ، دیگه کپی نشه ؟ (میخوام از هر عکس یک بار بیشتر کپی نشه)
3- برای کپی به SD Card ازین استفاده میکنم:
new File(DIR_MYFOLDER).mkdirs();
File file = new File(DIR_MYFOLDER + "/"
+ "test.png");
AssetManager assetmanager = G.context.getAssets();
InputStream inputstream;
try {
inputstream = assetmanager
.open("test.png");
HelperIO.copyFile(inputstream, DIR_MYFOLDER + "/"
+ "test.png");
}
catch (Exception e) {
// TODO: handle exception
}
چجوری میشه تغییرش داد که نخوام دونه به دونه 250 عکس رو براش تعریف کنم ؟ با آرایه میشه ؟ یا مثلا با Zip کردن بعد Unzip ؟ یا بهتره کل Assets کپی بشه داخل SD Card ...؟ بهترین راهش چیه؟
سوال آخر :
حجم کل فایل هایی که میخوام کپی کنم 20Mb عه , چجوری میشه براش یه ProgressBar بذارم که روند کپی فایل ها رو نشون بده ؟ ( منظورم اینه که ProgressBar بر چه اساسی باید بره جلو...؟ )
ببخشید سوالام زیاد شد :D
ممنون...
گوشی های قدیمی کارت حافظه رو به عنوان external storage در نظر می گرفتن ولی گوشی های جدید حافظه ی داخلی گوشی رو به عنوان external storage در نظر می گیرن. شما برای بهتر کار کردن برنامه و جلوگیری از کرش کردن باید چک کنید ببینید کارت حافظه وجود داره یا نه با این کد.
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
// your code here
}
اگه گوشی از اون گوشی های قدیمی باشه در صورتی شرط true میشه که گوشی حتما کارت حافظه داشته باشه. ولی اگه گوشی از این گوشی های جدید باشه در هر صورت شرط true میشه. پس نتیجه می گیریم که باید حتما چک کنیم که کارت حافظه وجود داره یا نه (تا در گوشی های قدیمی برنامه کرش نکنه) و بعد عملیات رو انجام بدیم.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .