المساعدة - البحث - قائمة الأعضاء - التقويم
نسخة كاملة: نسخ الملفات مع جافا
برمجة - شبكات - كمبيوتر - منتديات الفريق العربي للبرمجة > منتديات لغات البرمجة العام > منتدى مبرمجي لغة جافا JAVA
ahmed ali alsahli
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

أرجو أن لا أكون قد أثقلت عليكم يا اخواني بالأسئلة؟ ... عندي سؤال قد حيرني قليلا وهو حول نسخ ملف من مجلد الى مجلد آخر
كتبت كود أو بالأحرى نقلت كود من أحد الدروس من الانترنت, والذي أجده هو رسالة خطأ تقول لي: Access Denied
أولا دعوني أعرض عليكم الكود ومن ثم أرجو من أخواني والذين استخدموا هذه التجربة (نسخ الملفات بجافا) أن لا يبخلوا علينا بالبيان

كود
import java.io.*;
   public class Copy {
        String from,to;
    File file;
    public Copy()
    {
        from = "c:/Earth.jpg";
        to = "d:/Documents/copyfiles/";
        try
        {
            file = new File(from);
        }
        catch(Exception e)
        {
            file = null;
            e.printStackTrace();
            System.out.println("Where is the file?");
        }
                if(file != null)
        {
                try
                {
                    BufferedInputStream inStream = new BufferedInputStream(new FileInputStream(from));
                    BufferedOutputStream outStream = new BufferedOutputStream(new FileOutputStream(to));
                    byte[] bytes=new byte[1024];
                    int count = 0;
                                        while( (count=inStream.read(bytes))!=-1 ){
                                outStream.write(bytes,0,count);
                    }
                    outStream.close();
                    inStream.close();
                }
                catch(Exception e)
                {
                    e.printStackTrace();
                }
                System.out.println("File transferred: ");
        }
        else
        {
            System.out.println("no such url");
        }
    }
    public static void main(String[] args) throws IOException {
        new Copy();
            }

}
prog_omer
المشكلة في هذا السطر:

كود
BufferedOutputStream outStream = new BufferedOutputStream(new FileOutputStream(to));


حيث أن هذا السطر ينشئ كائن جديد يشير إلى ملف معين، ولكنك أعطيته to وهي تشير إلى folder وليس ملف، لهذا غير تعريف to إلى التالي:

كود
to = "d:/Documents/copyfiles/Earth.jpg";


وإن شاء الله يعمل معك

لا تنسى الدعاء لي بظهر الغيب
ahmed ali alsahli
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

أما الحل الذي أعطيته يا prog_omer فقد اشتغل بشكل صحيح ولله الحمد
زادك الله من فضله
والحمدلله على هذا الجمع الطيب


السلام عليكم ورحمة الله وبركاته
ahmed ali alsahli
السلام عليكم ورحمة الله وبركاته

عندي سؤال آخر .. وهو إذا كنت أريد أن أنسخ بداخل برنامجي؟
بمعنى أنني لا أريد أن أتقيد بمسار معين, وفي حال نقلت البرنامج إلى مكان آخر يشتغل.

إذا كنت تعرف في الفيجوال بيسك... شيء قريب من app.path
prog_omer
كود
from = "IN/Earth.jpg";
to = "OP/Earth.jpg";


حيث iN و OP عبارة عن فهارس في الكان الذي يوجد به هذه الكلاس
ابو الفؤاد
للحصول على المسار الحالي الموجود يه الكلاس
استخدم

كود
System.getProperty(user.dir);
mofeed chaar
اخي الكريم للتسهيل عليك استخدم هذا الكلاس
كود
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;


public class CopyFileUsingByteStream {

  public CopyFileUsingByteStream(String in,String out) {
    FileInputStream fis = null;
    FileOutputStream fos = null;



    try {
      fis = new FileInputStream(new File(in));

      File file = new File(out);
      if (file.exists()) {
        return;
      }
      else
        fos = new FileOutputStream(out);



      int r;
      while ((r = fis.read()) != -1) {
        fos.write((byte)r);
      }
    }
    catch (FileNotFoundException ex) {
    return;

    }
    catch (IOException ex) {
    return;

    }
    finally {
      try {

        if (fis != null) fis.close();
        if (fos != null) fos.close();
      }
      catch (IOException ex) {
      return;

      }
    }
  }
}

حيث تضع اسم المسار للملف و اسم المسار للملف الذي تريد ان يوضع فيه الملف داخل الباني و هو يقوم بالعمل
هذه "نسخة - خفيفة" من محتويات الرئيسية للإستعراض الكامل مع المزيد من الصور والخيارات الرجاء إضغط هنا.
Invision Power Board © 2001-2009 Invision Power Services, Inc.