تاپیک خیلی خوبیه و یکی دو ماه هست از وجودش باخبرم اما فعالیتی نداشتم و از نظر من یه اشکالی که وجود داره، ناخواسته باید محدوده ای برای برنامه هامون بذاریم. مثلا من یه بازی که با جاوا نوشته بودم رو میتونم کامل آپلود کنم، ولی مطمئنم به راحتی ازش برای پروژه درسی سوء استفاده میشه و این خط قرمزه برای من. متاسفانه برای همین مجبوریم همیشه یه تیکه خاص از برنامه ها رو بنویسیم که به تنهایی کسی نتونه ازش استفاده کنه و ارزش نمره نداشته باشه.
حالا این انتقادم بود که البته انتقاد از شما نیست، از همه از جمله خودم است که این مشکل راه حلی براش پیدا نکردیم!
اما برای اینکه دست خالی نیومده باشم، یه کد ساده در عین حال کاربردی ( حداقل برای پروژه من نیاز بود، گفتم این تیکش رو بذارم ).
فکر میکنم بتونم با این پیشفرض هایی که گفتم، از این به بعد هر از گاهی یه کد بذارم، و تو این حرکت قشنگتون سهیم باشم.
یک آدرس دایرکتوری ( یا همون پوشه یا فولدر ) رو میگیره، تا هر عمقی اسامی فایل ها و پوشه ها رو به صورت بازگشتی مینویسه. (یه نظمی هم بهش میده )
یه وقت آدرس ندید درایو \:C که اونوقت تا همشو ننویسه ولکن ماجرا نمیشه مگر اینکه برنامه رو کرش کنید.
public static void main(String[] args) throws IOException {
File file=new File("C:\\Program Files\\Java\\jre8"); //Directory address
System.out.println(file.getAbsolutePath());
if(file.isDirectory()){
listFile(file,0);
}
}
public static void listFile(File file,int depth){
for(File f:file.listFiles()){
if(f.isDirectory()){
for(int i=0;i<depth;i++) System.out.print("|"+"\t");
System.out.println("|_"+f.getName());
listFile(f,depth+1);
}else{
for(int i=0;i<depth;i++) System.out.print("|"+"\t");
System.out.println("|_"+f.getName());
}
}
}