Javaالكلاس File في جافا
الكلاس File يمثل جميع أنواع الملفات و المجلدات و المسارات.
	يستخدم هذا الكلاس لفحص الملفات, المجلدات, البحث عن ملفات, مسح ملفات إلخ..
كائن الـ File الذي تقوم بإنشاءه, يمثل ملف أو مجلد معين موجود في الجهاز.
الكلاس File يحتوي على الـ constructors المذكورين في الجدول التالي.
| الكونستركتور مع تعريفه | |
|---|---|
| 1 | public File(File parent, String child)ينشئ كائن جديد من الـFileالموجود في المسارparent, و الذي إسمهchild. | 
| 2 | public File(String pathname)ينشئ كائن جديد من الـFileالذي يشير إليه الـpathname. | 
| 3 | public File(String parent, String child)ينشئ كائن جديد من الـFileالموجود في المسارparent, و الذي إسمهchild. | 
| 4 | public File(URI uri)ينشئ كائن جديد من الـFileالذي يشير إليه الـuri. | 
بعد أن يصبح كائن الـ File جاهزاً, يمكنك إستخدام الكثير من الدوال الجاهزة لقراءة الملف أو لفعل أي شيء آخر.
| الدالة مع تعريفها | |
|---|---|
| 1 | public String getName()ترجع إسم الملف أو المجلد الذي يشير إليه مسار كائن الـFileالذي قام باستدعائها. | 
| 2 | public String getParent()ترجع المسار الأب للملف أو المجلد الذي يشير إليه كائن الـFileالذي قام باستدعائها كـString.أو ترجع nullإذا كان المسار الموضوع غير موجود. | 
| 3 | public File getParent()ترجع المسار الأب للملف أو المجلد الذي يشير إليه كائن الـFileالذي قام باستدعائها كـFile.أو ترجع nullإذا كان المسار الموضوع غير موجود. | 
| 4 | public String getPath()تحول المسار الذي يشير إليه كائن الـFileالذي قام باستدعائها إلىString. | 
| 5 | public boolean isAbsolute()تختبر المسار الذي يشير إليه كائن الـFileالذي قام باستدعائها لمعرفة إذا كان absolute أم لا.ترجع trueإذا كان absolute و ترجعfalseإذا لم يكن كذلك. | 
| 6 | public String getAbsolutePath()ترجع المسار الـ absolute للمسار الذي يشير إليه كائن الـFileالذي قام باستدعائها. | 
| 7 | public boolean canRead()تختبر إذا كان البرنامج يقدر أن يقرأ من الملف الذي يشير إليه كائن الـFileالذي قام باستدعائها.ترجع trueإذا كان الملف موجود و يمكن قراءته. غير ذلك ترجعfalse. | 
| 8 | public boolean canWrite()تختبر إذا كان البرنامج يقدر أن يكتب في الملف الذي يشير إليه كائن الـFileالذي قام باستدعائها.ترجع trueإذا كان الملف موجود و يمكن الكتابة فيه. غير ذلك ترجعfalse. | 
| 9 | public boolean exist()تختبر إذا كان الملف أو المجلد الذي يشير إليه كائن الـFileالذي قام باستدعائها موجوداً أم لا.ترجع trueإذا كان الملف موجود. غير ذلك ترجعfalse. | 
| 10 | public boolean isFile()تختبر إذا كان الملف الذي يشير إليه كائن الـFileالذي قام باستدعائها هو ملف عادي (normal file) أم لا.ملف عادي تعني ليس مجلد, أي ليس directory. أي ملف عادي تم إنشائه من خارج تطبيقات جافا يعتبر مباشرةً ملف عادي. ترجع trueإذا كان الملف موجود و إذا لم يكن directory. غير ذلك ترجعfalse. | 
| 11 | public boolean isDirectory()تختبر إذا كان الملف الذي يشير إليه كائن الـFileالذي قام باستدعائها هو مجلد (directory) أم لا.ترجع trueإذا كان الملف موجود و إذا كان directory. غير ذلك ترجعfalse. | 
| 12 | public long lastModified()ترجع وقت آخر مرة تم فيها تعديل الملف الذي يشير إليه كائن الـFileالذي قام باستدعائها. الوقت الذي ترجعه هو وقت بالـ milliseconds منذ( 1/1/1970 00:00:00 GMT ), أو ترجع0Lإذا كان الملف غير موجود أو في حال حدوث أي خطأ. | 
| 13 | public long length()ترجع طول الملف الذي يشير إليه مسار كائن الـFileالذي قام باستدعائها بالـ bytes. و ترجع0Lإذا لم يكن الملف موجود أو إذا كان المسار يشير إلى مجلد. | 
| 14 | public boolean createNewFile() throws IOExceptionتنشئ ملف جديد فارغ في المسار الذي يشير إليه كائن الـFileفي حال كان لا يشير إلى ملف موجود أصلاً.ترجع trueإذا كان الملف غير موجود و إذا تم إنشاءه بنجاح. غير ذلك ترجعfalse. | 
| 15 | public boolean delete()تمسح الملف أو المجلد الذي يشير إليه كائن الـFileالذي قام باستدعائها. إذا كان المجلد فارغاً يجب أن يكون فارغاً حتى يتم مسحه.ترجع trueإذا تم مسح الملف أو المجلد. غير ذلك ترجعfalse. | 
| 16 | public void deleteOnExit()ترسل طلب إلى الـ JVM يقضي بمسح الملف أو المجلد الذي يشير إليه كائن الـFileالذي قام باستدعائها عند الإنتهاء من تنفيذ أوامر البرنامج. | 
| 17 | public String[] list()ترجع مصفوفة نوعهاStringتحتوي على أسماء الملفات و المجلدات الموجودة في المسار الذي يشير إليه كائن الـFileالذي قام باستدعائها. | 
| 18 | public File[] listFiles()ترجع مصفوفة نوعهاFileتحتوي على مسارات جميع الملفات و المجلدات الموجودة في المسار الذي يشير إليه المجلد الذي يشير إليه كائن الـFileالذي قام باستدعائها. | 
| 19 | public boolean mkdir()تنشئ مجلد في المسار الذي يشير إليه كائن الـFile.ترجع trueإذا تم إنشاء الملف. غير ذلك ترجعfalse. | 
| 20 | public boolean mkdirs()تنشئ مجلد في المسار الذي يشير إليه كائن الـFileالذي قام باستدعائها.هنا في حال كان المسار الموضوع غير موجود ستقوم هي بإنشاءه. أي ستنشئ جميع المجلدات الموضوعة في المسار. ترجع trueإذا تم إنشاء الملف. غير ذلك ترجعfalse. | 
| 21 | public boolean renameTo(File dest)تستخدم لإعطاء إسم جديد للملف الذي يشير إليه كائن الـFileالذي قام باستدعائها. الإسم الذي يعطى للكائنdestهو الإسم الجديد الذي سيعطى للملف.ترجع trueإذا تمت العملية بنجاح. غير ذلك ترجعfalse. | 
| 22 | public boolean setLastModified(long time)تستخدم لتغيير آخر وقت تم فيه تعديل الملف يشير إليه كائن الـFileالذي قام باستدعائها.ترجع trueإذا تمت العملية بنجاح. غير ذلك ترجعfalse. | 
| 23 | public boolean setReadOnly()تستخدم لجعل الملف الذي يشير إليه كائن الـFileالذي قام باستدعائها يملك صلاحية الـ read only. هذه الصلاحية تمنع أي عملية تعديل أو كتابة في الملف و تسمح فقط بقراءة محتواه.ترجع trueإذا تمت العملية بنجاح. غير ذلك ترجعfalse. | 
| 24 | public static File createTempFile(String prefix, String suffix, File directory) throws IOExceptionتستخدم لإنشاء ملف مؤقت, أي ملف يتم مسحه تلقائياً عند إنتهاء الـ JVM من تنفيذ أوامر البرنامج.prefixهو إسم الملف الذي سيتم إنشاءه,suffixهو نوع الملف الذي سيتم إنشاءه.directoryهو الذي سيتم إنشاء الملف فيه.ترجع مسار الملف الذي تم إنشاءه. | 
| 25 | public static File createTempFile(String prefix, String suffix) throws IOExceptionتستخدم لإنشاء ملف مؤقت, أي ملف يتم مسحه تلقائياً عند إنتهاء الـ JVM من تنفيذ أوامر البرنامج.الملف هنا يتم إنشاءه في المكان الذي تحفظ فيه الملفات الإفتراضية على الجهاذ. prefixهو إسم الملف الذي سيتم إنشاءه,suffixهو نوع الملف الذي سيتم إنشاءه.ترجع مسار الملف الذي تم إنشاءه. | 
| 26 | public int compareTo(File pathname)تقارن أحرف مسارين مع بعض. أي مسار الكائن الذي قام باستدعاءها مع مسار الكائنpathname.ترجع 0 إذا كان مسار الكائن الذي قام باستدعاءها يساوي مسار الكائن pathname.ترجع عدد أصغر من 0 إذا كان مسار الكائن الذي قام باستدعاءها أكبر من مسار الكائن pathname.ترجع عدد أكبر من 0 إذا كان مسار الكائن الذي قام باستدعاءها أصغر من مسار الكائن pathname. | 
| 27 | public int compareTo(Object obj)تقارن أحرف مسارين مع بعض. أي مسار الكائن الذي قام باستدعاءها مع مسار أي كائن نضعه كـ argument.ترجع 0 إذا كان مسار الكائن الذي قام باستدعاءها يساوي مسار الكائن obj.ترجع عدد أصغر من 0 إذا كان مسار الكائن الذي قام باستدعاءها أكبر من مسار الكائن obj.ترجع عدد أكبر من 0 إذا كان مسار الكائن الذي قام باستدعاءها أصغر من مسار الكائن obj. | 
| 28 | public boolean equals(Object obj)تختبر الكائن الذي قام باستدعاءها مع أي كائن نضعه كـ argument.ترجع trueإذا كانت قيمة الكائنين لا تساويnullو إذا كان الكائنين عندهم نفس المسار سواء كان يشير إلى ملف أو إلى مجلد. غير ذلك ترجعfalse. | 
| 29 | public String toString()ترجع إسم الملف أو المجلد الذي يشير إليه مسار كائن الـFileالذي قام باستدعائها كـString.و هي مثل الدالة getPath(). | 
مثال
في هذا المثال سنقوم بإنشاء كائن نوعه File يشير إلى ملف معين, ثم سنعرض فقط بعض خصائص هذا الملف.
import java.io.File; public class Main { public static void main(String[] args) { // File هنا قمنا بإنشاء كائن نوعه File f = null; try { // f هنا قمنا بتحديد الملف الذي يشير إليه الكائن f = new File("C:\\MyFiles\\input.txt"); // يشير إلى ملف أو مجلد موجود سيتم عرض جميع خصائصه f هنا قلنا إذا كان الكائن if(f.exists()) { System.out.println("File name: " +f.getName()); System.out.println("File length: " +f.length()); System.out.println("File parent path: " +f.getParent()); System.out.println("File absolute path: " +f.getAbsolutePath()); System.out.println("File read permission: " +f.canRead()); System.out.println("File write permission: " +f.canWrite()); // يشير إلى مجلد, سيتم عرض جميع الأشياء الموجودة بداخله f هنا قلنا إذا كان الكائن if (f.isDirectory()) { System.out.println("\n" +f.getName()+ " contains:"); File files[] = f.listFiles(); for(int i=0; i<files.length; i++) { System.out.println((i+1)+") "+files[i].getName()); } } } // لا يشير لأي ملف أو مجلد موجود سيعرض أن الملف غير موجود f هنا قلنا إذا كان الكائن else { System.out.println("File not exists!"); } } catch(Exception e) { System.out.println("There is Exception!"); } } }
سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
File name: input.txt File length: 70 File parent path: C:\MyFiles File absolute path: C:\MyFiles\input.txt File read permission: true File write permission: true
في حال قمنا بتغيير مسار الكائن f لجعله يشير إلى المجلد MyFiles, سنحصل على النتيجة التالية عند التشغيل.
File name: MyFiles File length: 4096 File parent path: C:\ File absolute path: C:\MyFiles File read permission: true File write permission: true MyFiles contains: 1) input.txt 2) intro.MP4 3) hacker song.MP3 4) output.txt 5) folder 1 6) folder 2
 
                