آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

سلام مشکل در downloader

h@ss@n  8 سال پیش  8 سال پیش
0 0

سلام دوستان ، در این پروژه داخل  SD-CARD  برام فولدر  file-downloder  رو می سازه ولی داخلش فایل  sample-image.png   رو نمی سازه . هیچ اروری ندارم . روی امولیتور جدید و روی گوشی هم امتحان کردم ولی همین مشکل رو دارم . تو انجمن هم سرچ کردم ولی مشکلم حل نشد. کدها رو میزارم به نظرتون مشکل از کجاست ؟. در manifest.xml هم پرمیشن اندروید و نوشتن رو External Storage رو زدم . 

MainActivity code//////////////////////////////////////////////////////////////

package hassan.mosavi.app.downlaoder;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;


public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);

{ FileDownloader.download("http://192.168.1.49/file-server/img-2.png", G.DIR_APP + "/sample-image.png", lisener);
}

G.cod//////////////////////////////////////////////////////////////////////

package hassan.mosavi.app.downlaoder;

import java.io.File;
import android.app.Application;
import android.os.Environment;


public class G extends Application {

public static final String DIR_SDCARD = Environment.getExternalStorageDirectory().getAbsolutePath();
public static final String DIR_APP = DIR_SDCARD + "/file-downloader";
public static final int DONLOAD_BUFFER_SIZE = 8 * 1024;


@Override
public void onCreate() {
super.onCreate();
new File(DIR_APP).mkdirs();
}
}

 FileDownloader///////////////////////////////////////////

public static void download(final String downloadpath, final String filepath) {

try {
URL url = new URL(downloadpath);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.connect();

FileOutputStream outputstream = new FileOutputStream(filepath);

InputStream inputStream = connection.getInputStream();
byte[] buffer = new byte[G.DONLOAD_BUFFER_SIZE];
int len = 0;
while ((len = inputStream.read(buffer)) > 0) {
outputstream.write(buffer, 0, len);

}

outputstream.close();
}
catch (MalformedURLException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}

تشکر از راهنمایی شما

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Hadi  8 سال پیش
0 0

سلام. بعضی از مواردی که بهش اشاره میکنم، احتمالا مشکل اصلی نیستند اما بهتر هست که برطرف بشن:

1- قبل و یا بعد از اینکه کد outputstream.close(); را فراخوانی کردید باید کد inputStream.close(); رو هم بنویسید تا InputStream هم بسته شه.

2- اونجایی که نوشتید len = inputStream.read(buffer)) > 0. این کد رو به حالت روبرو تغییر بدید:len = inputStream.read(buffer)) != -1

3- و اینکه مطمئن باشید که قبل از دانلود کردن، wampserver در حال اجرا باشه.

4- کد های عملیات داخل متد download رو داخل یک Thread بگذارید.

5- و اگر با این کار ها همچنان مشکل وجود داشت، لینکتون رو نگاه کنید که درست باشه.

6- امکان اینکه ایرادی رخ بده اما تو لاگ کت چیزی ننویسه خیلی کمه. پس دنبال ارور باشید.

باز اگر جایی رو متوجه نشدید بگید.


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .