همانطور که میدانید، در لینکهای دانلود مستقیم، نام فایل قابل مشاهده است. برای مثال:
در اینجا، مشاهده میکنید که نام فایل، test.zip است. و همچنین این را نیز میدانیم که نام فایل، بعد از آخرین علامت / قرار دارد؛ که در نتیجه خود نام فایل، نمیتواند شامل این علامت باشد! حالا برای به دست آوردن و بیرون کشیدن آن از یک لینک همانند لینک بالا، روشهای متعددی وجود دارد؛ از جمله جدا کردن حروف با / و ریختن آن در یک آرایه و گرفتن آخرین مقدار آرایه!
روش اول
متد زیر، با الگوریتمی ساده به جای جدا کردن متن با عبارت / میتواند استفاده شود:
public static String getFileNameFromUrl(String url) { return url.substring(url.lastIndexOf('/') + 1); }
همانطور که میدانید، substring()، با دریافت یک عدد به عنوان ایندکس، از آن نقطه به بعد را به ما برمیگرداند. و از آنجایی که lastIndexOf()، ایندکس آخرین جایی که یک حرف در یک متن به کار برده شده است را به ما برمیگرداند، در نهایت با ارسال آن به داخل substring()، میتوان نام فایل را به دست آورد؛ البته توجه داشته باشید که برای حذف خود حرف / از نام فایل، ما ایندکس را یک خانه جلوتر تنظیم کردهایم.
روش دوم
روش بالا، با استفاده از کلاسهای جاوا انجام گرفت؛ و به عبارتی ما یک الگوریتم ساده نوشتیم! اما روش زیر، از کلاس URLUtil استفاده میکند که مختص اندروید بوده و نیازی به نوشتن کدهای بالا ندارد:
String url = "https://dl.fullkade.com/android/source/test.zip"; String fileName = URLUtil.guessFileName(url, null, null);
نظرات ثبت شده بدون دیدگاه