ورود

View Full Version : چگونه تصاویر را در یک پوشه در sd کارت قرار دهیم؟



kavous_kiani
یک شنبه 11 اسفند 1392, 14:33 عصر
.
دوستان!


در برنامه خودم می‌خواهم یک پوشه به نام images در اس دی کارت یوزر ایجاد کنم و تصاویر را در آن پوشه قرار دهم.


سوالات من :


۱. چگونه این پوشه را ایجاد کنم؟


۲. اگر کاربر چند اس دی کارت داشت مشکلی در ایجاد پوشه پیش نمی آید؟


۳. خب پوشه ظاهراْ باید بعداْ در اس دی کارت کاربر ایجاد شود، الان من عکس های خودم را در کدام پوشه و در کجای ساختار برنامه خودم قرار دهم، تا پس از ایجاد پوشه‌ی موردنظر، در اس دی کارت کاربر، این عکس‌های من به آن پوشه منتقل شود؟


متاسفانه من مقالات زیادی خواندم، ولی حتی یک جا ندیدم که به چنین مطالب ضروری حتی اشاره ای بکنند.


اگر درباره اس دی کارت و کار با آن مقالاتی دارید معرفی بکنید.


بسیار سپاسگذارم

rubiks.kde
یک شنبه 11 اسفند 1392, 15:00 عصر
1-کار با فایل ها را در جاوا مطالعه کنید
2-
زمانی که گوشی شما دو حافظه داره یکی رو خودش به صورت حافظه پیش فرض انتخاب میکنه(اابته از توی تنظیمات میشه تغییرش داد).حالا برای دسترسی به حافظه پیش فرض از کد زیر استفاده میشه :


String
baseDir =
Environment
.getExternalStorageDirectory().getAbsolutePath();

3-در پوشه Assets

این موضوع پیش پاافتاده ترین بحث توی هر زبان برنامه نویسی است.توی همین انجمن هم نمونه هایی هست.

saeidpsl
یک شنبه 11 اسفند 1392, 15:16 عصر
سلام
برا بدست اوردن آدرس SD Card
File rootDir = Environment.getExternalStorageDirectory();
برا ساختن پوشه

checkAndCreateDirectory("/test");
public void checkAndCreateDirectory(String dirName){
File new_dir = new File( rootDir + dirName );
if( !new_dir.exists() ){
new_dir.mkdirs();
}
}

و سوال آخرت عکسا رو بزار تو فولدر asset و برای کپی کردن

String destFile = rootDir+"/test/tmp.jpg";
try {

File f2 = new File(destFile);
InputStream in = getAssets().open("test.jpg");
OutputStream out = new FileOutputStream(f2);

byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();

} catch (FileNotFoundException ex) {
System.out
.println(ex.getMessage() + " in the specified directory.");


} catch (IOException e) {
System.out.println(e.getMessage());
}

و اینو
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
اضافه کن به manifest تا اجازه بده رو SD Card رایت کنی

kavous_kiani
یک شنبه 11 اسفند 1392, 18:44 عصر
.


سوال :


یک برنامه‌نویس وقتی برنامه‌ای دارد که نیازمند صدها عکس باشد، آیا به طور اصولی این عکس‌ها را باید در پوشه‌ای در درون برنامه خودش ذخیره کند؟ در این صورت آیا باعث پر شدن حافظه اصلی کاربر نمی‌شود؟


آیا ما می‌توانیم عکس‌ها را در درون یک پوشه در برنامه خودمان قرار دهیم و در هنگام نصب این پوشه با دستورات ما بر روی اس دی کارت قرار بگیرد، تا بعدا هر وقت کاربر خواست عکسی را اضافه یا کم کند، آدرس برنامه همان پوشه باشد. پوشه‌ای که خودش داری چندین پوشه داخلی باشد.


الان در سیستم ویندوز، یک برنامه نویس می‌تواند مثلاْ پوشه‌ای برای برنامه‌اش در درون درایو سی ایجاد کند، و در درون برنامه خود، به آن پوشه اشاره کند و اساساْ تمام فرایند برنامه روی همان پوشه انجام می‌گیرد.


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


محتاج راهنمایی و معرفی منابع هستم. با تشکر

saeed_g21
یک شنبه 11 اسفند 1392, 20:52 عصر
من خودم در برنامه هام قسمت کاتالوگ دارم که یکسری آیتم همراه با عکس نمایش میدم که معلوم نیست این لیست 10 ردیف یا 100 یا ... ردیف باشه آمدم واسه نمایش تصاویرم یک شاخه ساختم بعد عکسهایی که در اون قسمت وجود داره به ترتیب از اونجا بر میدارم و نمایش میدم و البته ممکنه یکیش تصویر نداشته باشه که چیزی نمایش داده نمیشه اینم میشه کرد که اگه فایلی در اون فولدر نباشه یک تصویر دیگه نمایش بده حالا نحوه انتقال تصاویر به اون فولدر طرف هم میتونه با کابل یا ... کپی کنه یا اینکه از طریق خود برنامه فایل زیپ رو دانلود کنه و بعد از اتمام دانلود برنامه خودش از حالت زیپ در میاره و کپی میکنه داخل اون فولدر درنهایت فایل زیپ رو هم حذف کنه

گفتی که عکس هارو بذاری داخل خود برنامه بعد کپی کنی به دستگاه طرف این که 2برابر حجم میگیره

kavous_kiani
دوشنبه 12 اسفند 1392, 00:53 صبح
با سپاس از دوستان.

منظور من آن بود که : من الان می‌خواهم یک فولدر به نام photos بسازم. و آن را در برنامه خودم جا بدهم. و مثلاْ ۵۰ عکس درون آن قرار بدهم. بعد این پوشه، دقیقاْ در آدرس مشخصی در اس دی کارت قرار بگیرد. و من همین الان دقیقاْ بدانم که این پوشه در چه آدرسی در اس دی کارت قرار خواهد گرفت. مثلاْ :

data\data\mypackage\photos

تا بعداْ کاربر بتواند عکس های خود را در درون پوشه photo قرار بدهد، یا با زدن دکمه‌ای حذف کند، یا جایگزین کند، و...


سوال این است:

آیا برنامه نویس الان می‌تواند بداند که پوشه photo دقیقاْ در چه آدرسی قرار می‌گیرد؟ تا دستورات موجود در فایل جاوای اکتیویتی را بر اساس آن آدرس بنویسد. مثلاْ کاربر با کلیک بر روی یک عکس موجود از پنجاه عکس، به گالری برود، و عکسی را انتخاب و آن عکس به این پوشه وارد شود.

سوال بعدی اینکه: من این پوشه فتو را الان در کجا بگذارم ؟ در درون پوشه assets? منظور من گذاشتن عکس‌ها در پوشه assets نیست. چون من می‌خواهم یک پوشه به نام فتو داشته باشم که در درون خود این پوشه شاید ۳۰ پوشه فرعی قرار بدهم برای موضوعات مختلف.

دیگر آنکه، در کدام قسمت از ساختار برنامه ساختن پوشه غیر مجاز است؟ در پوشه assets چطور؟

امیدوارم که توانسته باشم منظورم را درست بیان کرده باشم.

سوال آخر: آیا برنامه‌نویس این اختیار را دارد که تعیین کند که برنامه‌اش بر روی حافظه اصلی دستگاه نصب نشود، و حتماْ بر روی حافظه خارجی، یعنی اس دی کارت، قرار بگیرد؟ تا به خاطر حجم بالای برنامه، کاربر ناچاراْ برنامه را «آن اینستال» نکند؟

با عذرخواهی از طولانی شده متن، و به قول ادبی‌ها، اطاله کلام!!

ممنون