رفتن به مطلب
  • 0

بدست آوردن مسیر DirAssets


rasoul.t

سوال

13 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

مسیر asset به صورت استرینگ به شکل زیره

file:///android_asset/

میخواین چیکار کنین شما؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

میخوام یه فایل رو از assets‌ به حافظه گوشی کپی کنم طوری که روند کپی فایل هم نشون داده بشه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

برای این کار بهتره از asynctask استفاده کنید AriaAsynctask رو جستجوکنید آموزشهاش هست

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

با AriaAsyncTask میشه روند کپی چند فایل رو داشته باشی ولی نه برای یک فایل.

یه کتابخونه ای هست به اسم CopyWithProgress که توی یکی از سایت های آموزش بیسیک فور اندروید به رایگان منتشر شده از اون استفاده کنید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

کتابخانه AriaAsynctask ذسترسی به dirassets  رو نداره و فقط میتونه فایل ها رو از مسیر حافظه داخلی یا خارجی جابجا کنه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 45 دقیقه قبل، rasoul.t گفته است :

کتابخانه AriaAsynctask ذسترسی به dirassets  رو نداره و فقط میتونه فایل ها رو از مسیر حافظه داخلی یا خارجی جابجا کنه

یعنی چی دسترسی نداره؟ هیچ مشکلی نداره عزیز

Sub Globals
	Dim ar As AriaAsyncTask
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("main")
	ar.Initialize("aria")
End Sub

Sub aria_DoInBackground(params() As Object) As Object
	File.Copy(File.DirAssets,"yorfile",File.DirDefaultExternal,"yourfile")
End Sub
Sub aria_OnPostExecute(param As Object)
	ProgressDialogHide
End Sub
Sub aria_OnPreExecute
	ProgressDialogShow("در حال کپی")
End Sub
Sub aria_OnProgressUpdate(progress As Int)
	
End Sub
Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub Button1_Click
ar.Run(Null)
End Sub

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 14 دقیقه قبل، rasoul.t گفته است :

درصد کپی فایل رو چجوری میتونم نمایش بدم. از صفر تا صد

کدی که اقای شاهپیری دادن رو دیدین ؟ 

در 52 دقیقه قبل، محمدرضا شاهپیری گفته است :

Sub aria_OnProgressUpdate(progress As Int)

 

End Sub

با این ساب و مقدار پروگرسی ک میده 

دیگ حالا کجا و چطور استفاده کنی بستگی به خودت داره :)

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در این صورت باید کلاس File رو بازنویسی کنید چون به صورت پیشفرض این کار غیر ممکنه شما دسترسی به بایتها ندارد

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دسترسی به بایتها؟

متد تبدیل فایل به بایت:

Sub FileToBytes (Dir As String, FileName As String) As Byte()
   Return Bit.InputStreamToBytes(File.OpenInput(Dir, FileName))
End Sub

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 17 دقیقه قبل، AMiN.M7892 گفته است :

دسترسی به بایتها؟

متد تبدیل فایل به بایت:


Sub FileToBytes (Dir As String, FileName As String) As Byte()
   Return Bit.InputStreamToBytes(File.OpenInput(Dir, FileName))
End Sub

 

خیر دوست عزیز منظور بایتی که تو متد زیره

public static void Copy(InputStream In, OutputStream Out)
    throws IOException
  {
    byte[] buffer = new byte['?'];
    int count = 0;
    while ((count = In.read(buffer)) > 0) {
      Out.write(buffer, 0, count);
    }
    In.close();
  }

این متد همون کار کپی رو انجام میده واسه اینکه بتونی روند یا همون درصد رو بگیری باید پزوگرس رو تو حلقه while بزاری

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اهان.

کپی بایت به بایت...

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

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

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

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...