PDA

View Full Version : مشکل با FileOutputStream



nimar9
یک شنبه 31 فروردین 1393, 20:17 عصر
سلام خسته نباشید من یه مشکل دارم تو کدم آدرس رو به این صورت میزنم کار میکنه ولی به صورت پایین تر میزنم کار نمیکنه . چی کار کنم که این جور string نوشتن کار کند.

OutputStream output = new FileOutputStream("sdcard/Android/data/ir.Nimar9.bb/29/D/1392/Q01.jpg");

OutputStream output = new FileOutputStream("sdcard/Android/data/ir.Nimar9.bb/" + b + "/" + a + "/" + Sal + "/Q0" + number + ".jpg");

چی کار کنم ممنون

rubiks.kde
یک شنبه 31 فروردین 1393, 22:49 عصر
این "sdcard/Android/data/ir.Nimar9.bb/" + b + "/" + a + "/" + Sal + "/Q0" + number + ".jpg" رو کلا به صورت یه string تعریف کن و بعد به تابع بده(یعنی اول توی یه متغییر از نوع string بزار و بعد استفاده کن)

nimar9
دوشنبه 01 اردیبهشت 1393, 18:44 عصر
مرسی از جوابت داداش ولی بازهم جواب نداد هرکاری کردم خودت یه تست کن.

rubiks.kde
دوشنبه 01 اردیبهشت 1393, 19:14 عصر
مرسی از جوابت داداش ولی بازهم جواب نداد هرکاری کردم خودت یه تست کن.

تکه کدی که بشه اجرا کرد رو بزار

nimar9
دوشنبه 01 اردیبهشت 1393, 19:27 عصر
بفرما داداش البته آدرس فایل رو خودت درست کن آدرس فایلم درست نیست. ممنون

FrameLayout fr1=(FrameLayout) findViewById(R.id.SalF1);
FrameLayout fr2=(FrameLayout) findViewById(R.id.SalF2);

fr1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
final String a= "12";
final String b= "D";
final String c= "1392";
final String file_url = "http://nimar9.ir/android/ir.Nimar9.aa/" + a + "/" + b + "/" + c + "/Q01.jpg";
new DownloadFileFromURL().execute(file_url);

}
});

fr2.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
final String a= "12";
final String b= "D";
final String c= "1391";
final String file_url = "http://nimar9.ir/android/ir.Nimar9.aa/" + a + "/" + b + "/" + c + "/Q01.jpg";
new DownloadFileFromURL().execute(file_url);

}
});
final String Filen = "sdcard/Android/data/ir.Nimar9.aa/" + a + "/" + b + "/" + c + "/Q01.jpg";

ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);

}
/**
* Dialogنمايش
* */
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case progress_bar_type:
pDialog = new ProgressDialog(this);
pDialog.setMessage("در حال بارگذاري ، لطفا صبر کنيد");
pDialog.setIndeterminate(false);
pDialog.setMax(100);
pDialog.setProgressStyle(ProgressDialog.STYLE_HORI ZONTAL);
pDialog.setCancelable(true);
pDialog.show();
return pDialog;
default:
return null;
}
}


/**
* Background Async Task to download file
* */
class DownloadFileFromURL extends AsyncTask<String, String, String> {

/**
قبل از شروع دانلود مي گيم پروگرس بار رو به نمايش بزار
* */
@Override
protected void onPreExecute() {
super.onPreExecute();
showDialog(progress_bar_type);
}

/**
دانلود فايل در يک نخ جدا
* */
@Override
protected String doInBackground(String... f_url) {
int count;
try {
URL url = new URL(f_url[0]);
URLConnection conection = url.openConnection();
conection.connect();
// به دست آوردن حجم فايل
int lenghtOfFile = conection.getContentLength();

// input stream براي خواندن فايل- with 8k buffer
InputStream input = new BufferedInputStream(url.openStream(), 8192);

// Output stream براي ذخيره فايل
OutputStream output = new FileOutputStream(Filen);

byte data[] = new byte[1024];

long total = 0;

while ((count = input.read(data)) != -1) {
total += count;
// publishing the progress....
// صدا زده خواهد شد onProgressUpdate بعد از اين
publishProgress(""+(int)((total*100)/lenghtOfFile));

// نوشتن اطلاعات داخل فايل
output.write(data, 0, count);
}

// flushing output
output.flush();

// هاstreamبستن
output.close();
input.close();

} catch (Exception e) {
Log.e("Error: ", e.getMessage());
}

return null;
}

/**
بروزکردن پروگرس بار
* */
protected void onProgressUpdate(String... progress) {
//تنظيم مقدار پروگرس بار
pDialog.setProgress(Integer.parseInt(progress[0]));
}

/**
بعد از اتمام کار
* **/
@SuppressWarnings("deprecation")
@Override
protected void onPostExecute(String file_url) {
// لغو نمايش پروگرس بار بعد از اتمام دانلود
dismissDialog(progress_bar_type);

// تنظيم فايل دانلود شده براي نمايش

}

}

spiderman200700
سه شنبه 02 اردیبهشت 1393, 01:50 صبح
خطایی که میده رو بزار ببینیم مشکل چیه دقیقا.
دقیت داشته باش که وقتی داری آبجکت FileOutputStream رو ایجاد میکنی، پوشه های تو درتویی که آدرسشو دادی ساخته شده باشه. اگه این پوشه ها وجود ندارن اول ایجادشون کن بعد از FileOutputStream آبجکت بساز.

nimar9
سه شنبه 02 اردیبهشت 1393, 22:30 عصر
خطایی که میده رو بزار ببینیم مشکل چیه دقیقا.
دقیت داشته باش که وقتی داری آبجکت FileOutputStream رو ایجاد میکنی، پوشه های تو درتویی که آدرسشو دادی ساخته شده باشه. اگه این پوشه ها وجود ندارن اول ایجادشون کن بعد از FileOutputStream آبجکت بساز.

داداش خطایی نمیده فقط Progressbar dialog بسته میشه و دانلود نمیکنه. پوشه ها درست هستند و ساخته شده فقط مشکل دانلود و ذخیرشه.

nimar9
چهارشنبه 03 اردیبهشت 1393, 15:34 عصر
کسی نیست جوابمو بده لا اقل یه پروژه نمونه دانلود با این روش و وجود متغیر بدید تا خودم به جواب برسم.

nimar9
جمعه 05 اردیبهشت 1393, 13:04 عصر
اگر کسی نمی تونه مشکلمو حل کنه .
لااقل دانلود با دانلود منیجر رو بگید که آدرسشو از کاربر نخواد و بعد از دانلود نگه کجا ذخیره شده.