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

تابع تجزیه Result در Content Chooser


AMiN.M7892

سوال

سلام دوستان، من از کتابخونه content chooser استفاده میکنم و وقتی فایل انتخاب میشه یه آدرسی برای فایل میده که نامفهومه یعنی مثل یه آدرس که باید باشه نیست مثل این نیست:

storage/sdcard0/filename.txt

و یه همچین چیزیه:

contentmedia://... 

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

ولی کلا آدرس درست رو نمیده

یادم هست یه تابعی بود برای تجزیه ی این آدرس که فکر کنم اینجوری بود:

sub ContentUri(Uri as string)

...

end sub

این کد رو ندارم ممنون میشم اگه کسی داره کد رو بزاره

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

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

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

درود،

توی یکی از پروژه های قدیمیم تابعش رو داشتم:

Sub GetRealPath(address As String) As String
   If address.StartsWith("/") Then Return address
   Dim myArr() As String
   myArr = Array As String("_data")
   Dim c1 As Cursor
   Dim ref As Reflector
   Dim Uri As Object
   Uri = ref.RunStaticMethod("android.net.Uri", "parse", _
      Array As Object(address), _
      Array As String("java.lang.String"))
   ref.Target = ref.GetContext
   ref.Target = ref.RunMethod("getContentResolver")
   c1 = ref.RunMethod4("query", _
   Array As Object(Uri, myArr, Null, Null, Null), _
   Array As String("android.net.Uri", _
      "[Ljava.lang.String;", "java.lang.String", _
      "[Ljava.lang.String;", "java.lang.String"))
   c1.Position = 0
   Dim res As String
   res = c1.GetString("_data")
   c1.Close
   Return res
End Sub

کتابخانه های SQL و Reflection نیاز هستش...

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

سلام دوستان ، ممنونم از همه مشکل حل شد ، دیشب میخواستم بگم مشکلم حل شد ولی محدودیت ارسال تاپیکم پر شده بود

از آقا مهدی هم عذر میخوام بخاطر تعویض اکانتم ، نمی دونستم جزء قوانینه!

راستی ، محدودیت تاپیک ها رو کم کنید خیلی بده اینجوری

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

 

درود،

توی یکی از پروژه های قدیمیم تابعش رو داشتم:

Sub GetRealPath(address As String) As String
If address.StartsWith("/") Then Return address
Dim myArr() As String
myArr = Array As String("_data")
Dim c1 As Cursor
Dim ref As Reflector
Dim Uri As Object
Uri = ref.RunStaticMethod("android.net.Uri", "parse", _
Array As Object(address), _
Array As String("java.lang.String"))
ref.Target = ref.GetContext
ref.Target = ref.RunMethod("getContentResolver")
c1 = ref.RunMethod4("query", _
Array As Object(Uri, myArr, Null, Null, Null), _
Array As String("android.net.Uri", _
"[Ljava.lang.String;", "java.lang.String", _
"[Ljava.lang.String;", "java.lang.String"))
c1.Position = 0
Dim res As String
res = c1.GetString("_data")
c1.Close
Return res
End Sub

کتابخانه های SQL و Reflection نیاز هستش...

ممنون میشم پاسخ بدید:

ممنون میشم روش جدا کردن اسم فایل و آدرس فایل از همدیگه رو هم بگید

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

درود

ببینید اگه شما از content chooser استفاده کردید که خودش یک event داره برای این کار :

Sub chooser_Result (Success As Boolean, Dir As String, FileName As String)

End Sub 

FileName اسم فایل هست و Dir هم مسیر :fekr:

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

درود

ببینید اگه شما از content chooser استفاده کردید که خودش یک event داره برای این کار :

Sub chooser_Result (Success As Boolean, Dir As String, FileName As String)

End Sub 

FileName اسم فایل هست و Dir هم مسیر :fekr:

 

بله ولی مشکلی که هست اینه:

به روشی که شما میگید میرم ولی ارور میده که فایلی که انتخاب کردم وجود نداره:

no such file or directory 

درصورتی که فایل رو خودم انتخاب کردم و وجود داره

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

بله ولی مشکلی که هست اینه:

به روشی که شما میگید میرم ولی ارور میده که فایلی که انتخاب کردم وجود نداره:

no such file or directory 

درصورتی که فایل رو خودم انتخاب کردم و وجود داره

لطفا نمونه سورس پیوست کنید :)

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


Sub Address_Click
	CC.Show("*/*","انتخاب فایل")
End Sub

Sub CC_Result (Success As Boolean, Dir As String, FileName As String)
	Try
	If Success Then
		FilePath = Dir
		FileName1 = FileName
		FullPath = Dir&FileName
		ToastMessageShow("فایل با موفقیت انتخاب شد!",False)
		FileState.Bitmap = LoadBitmap(File.DirAssets,"tik.png")
	Else
		FileState.Bitmap = LoadBitmap(File.DirAssets,"zarb.png")
		ToastMessageShow("در انتخاب فایل، خطایی رخ داد!",False)
	End If
	Catch
	ToastMessageShow(LastException.Message,False)
	End Try
End Sub

این کدشه، یه خورده نامیزون شد(کارکترهاش جابجا شد) بزاریدش تو بیسیک درست میشه

متغیر CC رو توی PROCCESS_GLOBAl تعریف کردم و توی activity_create اینشیالایز شده با همین اسم event

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

البته اینم بگم، وقتی مقدار Dir و Filename رو توی یه استرینگ میریزم و توی یه لیبل قرار میدم کاملا درسته ولی موقعی که میخوام با فایلش یه پردازشی رو انجام بدم(مثل کپی یا حذف کردن فایل) مشکلی که گفتم پیش میاد

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

سلام دوستان

چرا بعضا رویداد Result فراخوانی نمی شه

من فایل از content chooser انتخاب می کنم و به محیط برنامه برمیگرده ولی انگار نه انگار که فایلی انتخاب شده

مشکل از چی می تونه باشه

فایل انتخابی هم عکسه

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

وقتی مقدار Dir رو میریزم توی لیبل هیچ مقداری نداره ولی وقتی مقدار Filename رو میریزم کل آدرس فایل رو نشون میده! ولی حالا نمیشه ازش استفاده کرد،چجوری میشه چند کارکتر از یه استرینگ رو جدا کرد و توی استرینگ دیگه برد؟

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

سلام

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

انشاءالله یک نمونه قرار میدم.

موفق باشید

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

سلام، من همون amin mohammadi هستم ولی بخاطر اینکه محدودیت ارسال تاپیک هام پر شده بود مجبور شدم اکانتم رو عوض کنم، عذر میخوام

من چند تا تست کردم متوجه شدم که این کتابخونه درست نوشته نشده:

طی این تست ها فهمیدم که کل آدرس فایل به متغیر Filename ریخته میشه و متغیر Dir همیشه خالیه 

نمیدونم شاید نسخه کتابخونه phone من قدیمیه ، نسخه اش 2.26 هست 

دوستان حالا یه راهی بدید که بشه این آدرس ها رو از هم جدا کرد

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

سلام دوستان، یه سورس تهیه کردم برای اینکه منظورم رو متوجه بشید

روند کار اینه:

برنامه که باز میشه روی دکمه ی انتخاب فایل میزنید و فایلی رو انتخاب میکنید

بعد از انتخاب فایل ، مقدار Dir توی لیبلی که زیر دکمه ی انتخاب فایل هست وارد میشه و صد در صد خالیه

بعد از 3 ثانیه مقدار Filename رو توی لیبلی که گفتم میریزه و می بینید که کل آدرس فایل، نمایش داده میشه

یا مشکل از کتابخونه است یا نمی دونم چشه

لینک سورس

بازم عذر میخوام دیر وقت تاپیک زدم امیدوارم فردا صبح جوابم رو بگیرم

یادآوری میکنم من همون amin mohammadi هستم ولی بخاطر محدودیت در ارسال تاپیک اکانت عوض کردم

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

دوست عزیز داشتن دو اکانت در سایت ممنوع است و طبق قوانین هر دو اکانت مسدود می شود.لطف کنید به قوانین احترام بگذارید در صورت لزوم می توانید پست های قبلی را ویرایش کنید

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

درود،

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

Sub CC_Result (Success As Boolean, Dir As String, FileName As String)
   Dim x = GetRealPath(FileName) As String
   Dim theFileName = x.SubString(x.LastIndexOf("/")+1) As String
End Sub

باقی سوالاتتون رو متوجه نمیشم...

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

بایگانی شده

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

مهمان
این موضوع برای عدم ارسال قفل گردیده است.
  • کاربران آنلاین در این صفحه   0 کاربر

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