ورود

View Full Version : آیا نام فولدر storage در تمام دیوایس های اندرویدی یکسان است؟



c0mmander
شنبه 05 اردیبهشت 1394, 13:35 عصر
دوستان یک سوالی ایا در تمامی گوشی فلولدر storage وجود داره؟ یا بهتر بگم به همین صورت"\storage\" وجود داره؟
چون من میخوام با بررسی این فولدر در صورتی که رم خارجی داشت ازش استفاده کنم.

dasssnj
شنبه 05 اردیبهشت 1394, 17:01 عصر
سلام.

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

c0mmander
شنبه 05 اردیبهشت 1394, 17:07 عصر
سلام.

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

من مسیر رم خارجی (منظورم external sdcard نه sdcard0) چطوری تشخیص بدم؟

dasssnj
شنبه 05 اردیبهشت 1394, 17:16 عصر
من مسیر رم خارجی (منظورم external sdcard نه sdcard0) چطوری تشخیص بدم؟

ببین این جواب میده :

Environment.getExternalStorageDirectory();

c0mmander
شنبه 05 اردیبهشت 1394, 17:45 عصر
ببین این جواب میده :

Environment.getExternalStorageDirectory();

از این کد استفاده کردم اما خروجیش این مسیر میشه :


/storage/sdcard0

dasssnj
شنبه 05 اردیبهشت 1394, 17:48 عصر
از این کد استفاده کردم اما خروجیش این مسیر میشه :


/storage/sdcard0


آدرس اصلی مموری کارت توی اون دستگاهی که تست کردی چیه ؟

c0mmander
شنبه 05 اردیبهشت 1394, 17:57 عصر
آدرس اصلی مموری کارت توی اون دستگاهی که تست کردی چیه ؟

دقیقا این مسیر میشه:


/storage/external_SD

c0mmander
شنبه 05 اردیبهشت 1394, 18:00 عصر
این لینکه رو ببین: http://stackoverflow.com/questions/26117511/get-correct-path-to-external-sdcard-in-android
میگه هیچ راهی مطمینی برای به دست اوردن این آدرس از طریق کد نیست :گریه::گریه::گریه::گریه::گریه: :گریه::گریه::گریه::گریه:

dasssnj
شنبه 05 اردیبهشت 1394, 18:12 عصر
این لینکه رو ببین: http://stackoverflow.com/questions/26117511/get-correct-path-to-external-sdcard-in-android
میگه هیچ راهی مطمینی برای به دست اوردن این آدرس از طریق کد نیست :گریه::گریه::گریه::گریه::گریه: :گریه::گریه::گریه::گریه:

الان گوشی خودم چون حافظه داخلی نداره پوشه /storage/sdcard0 مموری کارت را باز می کنه .
یه گوشی دیگه هم تست کردم که مموری کارتش این آدرسه : /storage/sdcard1
گوشی شما هم که اینه : /storage/external_SD

:عصبانی++::عصبانی++::عصبانی++:: صبانی++::عصبانی++::متفکر::متف ر::متفکر:

گیج شدم ! حتما باید یه راهی برای تشخیصش باشه . باید یه مقدار روش فکر کنیم . روش آزمون و خطا چطوره ؟

c0mmander
شنبه 05 اردیبهشت 1394, 18:21 عصر
الان گوشی خودم چون حافظه داخلی نداره پوشه /storage/sdcard0 مموری کارت را باز می کنه .
یه گوشی دیگه هم تست کردم که مموری کارتش این آدرسه : /storage/sdcard1
گوشی شما هم که اینه : /storage/external_SD

:عصبانی++::عصبانی++::عصبانی++:: صبانی++::عصبانی++::متفکر::متف ر::متفکر:

گیج شدم ! حتما باید یه راهی برای تشخیصش باشه . باید یه مقدار روش فکر کنیم . روش آزمون و خطا چطوره ؟

هر راهی که بشه به این کارت حافظه بصورت اطمینانی رسید اشکال نداره حتی روش هردم بیل هم که باشه فقط جواب بده :گریه::گریه:

dasssnj
شنبه 05 اردیبهشت 1394, 18:34 عصر
هر راهی که بشه به این کارت حافظه بصورت اطمینانی رسید اشکال نداره حتی روش هردم بیل هم که باشه فقط جواب بده :گریه::گریه:

مثلا چطوره نگاه کنیم ببینم /storage/external_SD هست یا نه ؟ اگه وجود داشت از همین استفاده کنیم وگرنه از /storage/sdcard1 استفاده کنیم . اگر هر دو اینها وجود نداشتن از /storage/sdcard0 استفاده کنیم .
البته بهتره برند های دیگه را هم تست کنیم و نام فولدر های مربوط به هر برند را پیدا کنیم .

(این روش خیلی مبتدیانه ست . شاید بشه راه های بهتری پیدا کرد)

dasssnj
شنبه 05 اردیبهشت 1394, 18:41 عصر
اگه وقت داشتی راه هایی که توی این لینک ها گفته شده را هم تک تک تست کن :

http://stackoverflow.com/questions/11281010/how-can-i-get-external-sd-card-path-for-android-4-0
http://stackoverflow.com/questions/5694933/find-an-external-sd-card-location

راستی انگار توی اندروید 4.4 به بالا با این روش میشه راحت فولدر را پیدا کرد . اینم تست کن روی شبیه ساز یا گوشی 4.4 به بالا :

Context.getExternalFilesDirs()

c0mmander
شنبه 05 اردیبهشت 1394, 20:39 عصر
مثلا چطوره نگاه کنیم ببینم /storage/external_SD هست یا نه ؟ اگه وجود داشت از همین استفاده کنیم وگرنه از /storage/sdcard1 استفاده کنیم . اگر هر دو اینها وجود نداشتن از /storage/sdcard0 استفاده کنیم .
البته بهتره برند های دیگه را هم تست کنیم و نام فولدر های مربوط به هر برند را پیدا کنیم .

(این روش خیلی مبتدیانه ست . شاید بشه راه های بهتری پیدا کرد)

این راه رو یکم تغییر دادم که اول مسیر رو از طریق همون دستور : Environment.getExternalStorageDirectory(); بگیره و بعد یک برگرده عقب به عنوان مثال دستور مسیر /storage/sdcard1 رو بر میگرده با استفاده از برش رشته تکه اولش رو جدا کنه و تمام محتوا رو داخل یک آرایه فایل بریزه و بعد تمام بررسی ها رو انجام بده .

c0mmander
شنبه 05 اردیبهشت 1394, 20:42 عصر
اگه وقت داشتی راه هایی که توی این لینک ها گفته شده را هم تک تک تست کن :

http://stackoverflow.com/questions/11281010/how-can-i-get-external-sd-card-path-for-android-4-0
http://stackoverflow.com/questions/5694933/find-an-external-sd-card-location

راستی انگار توی اندروید 4.4 به بالا با این روش میشه راحت فولدر را پیدا کرد . اینم تست کن روی شبیه ساز یا گوشی 4.4 به بالا :

Context.getExternalFilesDirs()

لینک اولی که جواب نداد لینک دوم رو بعدا تست میکنم.
فعلا کلا بیخیال استفاده از انتخاب رم خارجی در برنامه شدم رفتم یک فایل منیجر گذاشتم داخل برنامه که کاربر از فولدر اصلی "/" بره هر گوری که میخواد فایل رو انتخاب کنه و یا مسیر دانلودش رو داخل اون قسمت قرار بده. :عصبانی++::عصبانی++:

storm_saeed
شنبه 05 اردیبهشت 1394, 20:43 عصر
Environment.getExternalStorageDirectory() همیشه مسیری به sdcard نیست مثلا فک کنم سامسونگ اینطور نیست
متاسفانه من دستگاهی ندارم که sd card داشته باشه و بتونم روش تست کنم ولی
باید از راه ازمون خطا بری جلو و تمام حالت های ممکنی که میتونه باشه رو در بیاری
از این راه میتونی مسیر استوریج رو بدست بیاری

adb shell 'echo ${SECONDARY_STORAGE%%:*}'
و این دو راه هم به نظر روش های خوبی میان
http://stackoverflow.com/questions/5858107/how-to-get-file-path-from-sd-card-in-android#23737335
http://stackoverflow.com/questions/11281010/how-can-i-get-external-sd-card-path-for-android-4-0#11281048

c0mmander
شنبه 05 اردیبهشت 1394, 21:17 عصر
Environment.getExternalStorageDirectory() همیشه مسیری به sdcard نیست مثلا فک کنم سامسونگ اینطور نیست
متاسفانه من دستگاهی ندارم که sd card داشته باشه و بتونم روش تست کنم ولی
باید از راه ازمون خطا بری جلو و تمام حالت های ممکنی که میتونه باشه رو در بیاری
از این راه میتونی مسیر استوریج رو بدست بیاری

adb shell 'echo ${SECONDARY_STORAGE%%:*}'
و این دو راه هم به نظر روش های خوبی میان
http://stackoverflow.com/questions/5858107/how-to-get-file-path-from-sd-card-in-android#23737335
http://stackoverflow.com/questions/11281010/how-can-i-get-external-sd-card-path-for-android-4-0#11281048

لینک اول همون مشکلی رو داره فولدر storage از اندروید 4 به بالا مورد استفاده قرار گرفته. اگر اندروید پایین تر هم داشت که نداره (داخل شبیه ساز که نداشت :گریه:) مستقیما مسیر storage باز میکردم و هرچی با استفاده یک آرایه از شی فایل بررسی میکردم .
لینک دوم قبلا داخل گوشی خودم تست کردم. برای گوشی من جواب نداد.

در نهایت همون طور که خودت گفتی و dasssnj (http://barnamenevis.org/member.php?262850-dasssnj) هم اشاره داشت اینکه با آزمون خطا تمام حالت های ممکن بررسی بشه. که اونم واقعا ریسکه حتی برای اگر برای یک کاربر درست انجام نگیره واقعا تمام زحمت ها بر باد رفته.
یعنی واقعا شرکت هایی مثل سامسونگ چی پیش خودشون فکر کردن که مسیر مموری کارت رو دلخواهی نام گذاری میکن؟! اصلا فکر هم کردن؟! :عصبانی:

اما یک چیزی نمیشه مسیر رو از خود adb گرفت؟

roohola2434
یک شنبه 19 دی 1395, 17:16 عصر
کمک...............
منم همین مشکل رو دارم

spiderman200700
یک شنبه 19 دی 1395, 22:33 عصر
من یه لایبراری برای این کار نوشتم که یه کم قدیمی هست و روی اندروید 6 به بالا کار نمیکنه.
ولی تا اندروید 5 خوب جواب میده.
اینم لینکش:
https://github.com/omidfaraji/Environment3