الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ممكن طريقة معرفة حجم فولدر؟؟ ارجو المساعدة

بدأه gabal في 10 مارس 2008 · 4 رد · 1,023 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اول مشاركة لي في هذا المنتدى باذن الله نستفيد ونفيد قدر الامكان

اخواني عم بحاول عمل كود يقوم بمعرفة حجم فولدر معين بالاضافة لحسب مساحة جميع الفوردات التي بداخله ايضا!!

انا قمت بعمل كود يقوم بحسب مساحة فوردر معين ولكن لم استطيع حساب مساحة كافة الفولدرات التي بداخله

اعتقد الطريقة recursive

ولكن للاسف لم استطع تطبيقها

اهل من اللمكن احد الاخوة مساعدتي في هذا الكود

هذا الكود الي انا عملتو

String input = "";

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

System.out.print("Enter Folder name please: ");

input = in.readLine();

File MyFile = new File (input);

if(MyFile.isDirectory())

{

File pwd = new File(MyFile.getAbsolutePath());

File[] files = pwd.listFiles();

long size = 0;

for (int i=0; i<files.length; i++)

{

size += files.length();

}

System.out.println("Length? " + size ) ;

} else{

System.out.println("Not DIR") ;

}

يرجا المساعدة وشكرا

#2

use :

String[] fileNames = file.list()

because this function return all the content for both Files and Directory

File[] files = pwd.listFiles();

i think this Method return only the Files in Current Directory

therefore u cant get the subdirectory if you use this method

in main :

File path = new File(name);
String list [] = path.list();

for (int i=0; i<path.length; i++)
{
File f = new File(path,list,);

if ( f.isDirectory() )
getDirectoryContent (f,f.list());

else
// here add the size for File f in sum

}

and u can write any method for get inside the file if it contain

public static void getDirectoryContent (File f , String list[])
	{	
		for (int i=0; i<list.length; i++)
		{
			File d = new File(f,list);

			if ( d.isDirectory())
			{
				getDirectoryContent (d,d.list());
			}
			else
			{
							  // here u can get the length of File d and add to sum
			}
		}
	}

i hope u understand me

sorry for written in this "bad" English , this pc dont have arabic supprot

Good Luck :)

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#3

يوجد موضوع لي يغطي كافة الجوانب المتعلقة بهذا الامر اعمل بحث و ستدجده

فيه كل الخيارات مثلا تريد كود صغير تضعه داخل كودك او تريد حزمة او مكتبة تستدعيها يعني كافة الخيارات متوافرة و مع التوثيق و الشرح

وجدته

/index.php?showtopic=101546

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#4

بالمناسبه الداله

File[] files = pwd.listFiles();

ترجع جميع المحتويات سواء مجلدات أم ملفات ككائن من File .

والمعذره على توضيحها بشكل خاطئ كنت غير متأكد منها أساسا .

بالتوفيق .

(شكرا أخ رامي على الرابط).

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#5

جرب /

// Get The Size of Folder and its content
// By : Romansy 

import java.io.File;

public class Demo
{
	public static void main (String args[])
	{
		if ( args.length > 0 )
		{
			FileSize fs = new FileSize(new File(args[0]));
			System.out.println("Size = " + fs.getSize() + " Bytes");
			System.out.println("Size = " + FileSize.getSizeKB(fs.getSize()) + " KB");

		}
		else
		{
			System.out.println("Error You Must Enter Path");
			System.out.println("Usage : java Demo path");
		}
	}
}

class FileSize
{
	private File file;
	private long size = 0;

	public FileSize (File f)
	{
		file = f;
		getFileSize();
	}

	public long getSize ()
	{
		return size;
	}

	private long getFileSize ()
	{
		if ( file.isDirectory() )
		{
			getFileRecursive(file,file.list());
		}
		else
			size += file.length();

		return size;
	}

	private void getFileRecursive ( File f ,String content[])
	{
		for (int i=0; i<content.length; i++)
		{
			File d = new File(f,content);

			if ( d.isDirectory() )
				getFileRecursive(d,d.list());

			else
				size += d.length();
		}
	}

	public static long getSizeKB (long s )
	{
		return s / 1024;
	}
}

ليس جيد كفايه ، ولكن يفي بالغرض :) .

والرابط الذي وضعه أخ رامي ، فيه بعض البرامج لبعض الأخوه هنا ، وهي أفضل من الذي وضعته أنا .

بالتوفيق .

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…