求大神帮忙编写一个Java程序显示指定目录中所有的文件和目录,包括文件大小以及类型信息。急求啊!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求大神帮忙编写一个Java程序显示指定目录中所有的文件和目录,包括文件大小以及类型信息。急求啊!!!相关的知识,希望对你有一定的参考价值。

package Test2;

import java.io.File;

public class TestFile 

/**
 * @param args
 */
public static void main(String[] args) 
// TODO Auto-generated method stub
File file = new File("D:\\\\Java\\\\");
printFile(file,0);



/**
 * 输出文件树
 * @param file
 * @param l
 */
public static void printFile(File file,int l)
String str = new String();  //生成补充空格
for(int i=0;i<l;i++)
str +=" " ;

        //先输出自己后输出子目录或文件
formatPrint(file,str);

if(file.isDirectory())  //判断是否为目录
File[] files = file.listFiles();  //获取目录下文件列表
for(File f:files)//递归输出文件
printFile(f,l+3);





/**
 * 格式化输出文件
 * @param file
 * @param str
 */
public static void formatPrint(File file,String str)
//先输出文件
String[] names = file.getName().split("[.]");
System.out.println(str+file.getName()  
+ "       "+names[names.length-1]+" 文件"
+ "       "+file.length());




运行结果:
Java       Java 文件       0
   JMF211e       JMF211e 文件       0
      bin       bin 文件       4096
         cuswork       cuswork 文件       4096
            com       com 文件       0
               sun       sun 文件       0
                  media       media 文件       0
                     util       util 文件       0
                        RegistryLib.class       class 文件       41569
            new_jmf.properties       properties 文件       36425
            RegistryLib.class       class 文件       41569
            RegistryLib.java       java 文件       173350
         JMF.ico       ico 文件       2238
         jmfcustomizer.exe       exe 文件       36864
         jmfinit.exe       exe 文件       36864
         jmfregistry.exe       exe 文件       36864
         jmstudio.exe       exe 文件       36864
      doc       doc 文件       0
         readme.html       html 文件       21381
      lib       lib 文件       4096
         customizer.jar       jar 文件       2068427
         jmf.jar       jar 文件       2082557
         jmf.properties       properties 文件       35951
         jmf.properties.orig       orig 文件       34740
         mediaplayer.jar       jar 文件       39078
         multiplayer.jar       jar 文件       63515
         sound.jar       jar 文件       294070
         soundbank.gm       gm 文件       1154250
      Uninst.isu       isu 文件       9519

参考技术A // 搜索指定目录的全部内容
public void test9() 
      String fileName = "d:" + File.separator;
      File file = new File(fileName);
      print(file);


public void print(File f) 
      if (f != null) 
          // 为目录则循环里面的内容
          if (f.isDirectory()) 
              File[] arr = f.listFiles();
              if (arr != null) 
                  for (File file : arr) 
                      // 递归调用
                      print(file);
                  
              
                   else 
                  // 不为目录则打印出文件名
                  System.out.println(f.getAbsolutePath()+"\\t大小:"+f.length()+"字节");
          
      


这几天刚好在自学IO, 这个例子应该很简单了吧. 最快回答那个我看了下还要复制一遍,貌似没有必要啊, 文件大了岂不是很浪费时间.  不过我这个自能打印出他的路径, 文件名用 .getName()就可以了, 大小是以字节为单位的. 你说的类型信息, 我没找到相应的方法, 不过应该不是java api方法能判定的吧, 应该是自己写个方法来判定, 根据文件名的后缀来判定.

参考技术B 读取文件夹下所有文件及文件夹用.list()就可以,返回文件名包括後缀名。
至於文件大小你试试这个:

public void copyFile(String oldPath, String newPath) //复制文件
//System.out.println(oldPath+"***"+newPath);
try
//int bytesum = 0;
int byteread = 0;

InputStream inStream = new FileInputStream(oldPath); // 读入原文件
FileOutputStream fs = new FileOutputStream(newPath);
byte[] buffer = new byte[1024]; //每次取用的大小
while ((byteread = inStream.read(buffer)) != -1)
//bytesum += byteread; // 字节数 文件大小
//System.out.println(bytesum);
fs.write(buffer, 0, byteread);

inStream.close();

catch (Exception e)
System.out.println("copy file error");
e.printStackTrace();


把注释去了,里面的bytesum就是文件大小。本回答被提问者和网友采纳
参考技术C public void getFileInfo(String path) File f = new File(path); DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if(f.isDirectory()) System.out.println("目录:"+f.getName() +" 大小: "+(f.length()/1024)+"kb" +" 修改时间:"+ df.format( new Date(f.lastModified()))); File[] fs = f.listFiles(); for(File ff :fs) getFileInfo(ff.getPath()); else System.out.println("文件:"+f.getName() +" 文件大小: "+(f.length()/1024)+"kb" +" 修改时间:"+df.format(new Date(f.lastModified())));

编写java程序找出2-100之间的所有素数 求大神

参考技术A 编写java程序找出2-100之间的所有素数 求大神 素数又称质数,有无限个。素数定义为在大于1的整数中,除了1和它本身以外不再有其他因数的数称为素数。
java程序找出2-100之间的所有素数,代码如下:
public void findPrimeNumber()
存放素数集合
List<Integer> lists=new ArrayList<Integer>();
遍历2-100
for(int x=2;x<100;x++)
标志是否为素数,默认是true
boolean flag=true;
循环x除以(x/2)的数,能整除则不是是素数(不包含2)
for(int y=2;y<x/2;y++)
if(x%y==0)
能整除,则把标志设置为false,不是素数
flag=false;
break;


if(flag)
flag还是true,则是素数
lists.add(x);


System.out.println("2-100的素数集合:"+lists);

结果:
2-100的素数集合:[2, 3, 4, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
求1到100之间的所有素数。求程序
#include<stdio.h> int isprime(int n) int i; if(n<=1)return 0; for(i=2;i<=n/2;i++) if(n%i==0)return 0; return 1; main() int i; for(i=1;i<=100;i++) if(isprime(i)) printf("%d \n",i);
编一个程序题:100~500之间的所有素数,
给你搞来一份C的,但是是求和的,如果你是学C的,应该会改吧
#include "stdio.h"
void main()

int i,temp,j;
long sum=0;
for(i=100;i<500;i++)

temp=0;
for(j=2;j<i;j++)
if(i%j==0)
temp++;
if(temp==0)
sum+=i;

printf("%ld",sum);

下面的是pascal的
var
i,j:longint;
b:boolean;
begin
for i:=100 to 500 do
begin
for j:=2 to trunc(sqrt(i)) do
begin
b:=true;
if i mod j=0
then begin
b:=false;
break;
end;
end;
if b then writeln(i);
end;
end.
找出100到200之间的所有素数并求和

#include <stdio.h>#include <math.h>int primer(int min, int max) int j,k,i; int sum = 0; for(i = min + 1;i <= max; i += 2) k = sqrt(i); for(j = 2;j <= k;j++) if(i % j ==0)break; if(j >= k + 1) printf("%d ",i); sum += i; return sum;int main() int min = 100, max = 200; int sum = 0; sum = primer(min, max); printf("sum:%d\n", sum); return 0;

vb 编写程序求出100-200间的所有素数
Sub test()
Dim i As Integer
Dim j As Integer
Dim m As Boolean
For i = 100 To 200
m = True
For j = 2 To i ^ 0.5
If i Mod j = 0 Then
m = False
Exit For
End If
Next j
If m Then Print i
Next i
End Sub
vb编写程序找出3~100间所有素数并输出窗体
Private Sub form_click()
Dim N As Integer
Dim I As Integer
Dim J As Integer
Dim S As Boolean
N = 0
For I = 3 To 100
S = True
For J = 2 To Sqr(I)
If I Mod J = 0 Then
S = False
Exit For
End If
Next
If S Then
Print Format(I, " 0# ");
N = N + 1
If N Mod 10 = 0 Then Print
End If
Next
Print
Print "从3-100之间共有以上"; N; "个素数"
End Sub
C#编写程序,找出1---100之间的所有质数
List<int> list1 = new List<int>();
list1.Add(2);2是质数,先加它
bool b;
for (int i = 3; i < 100; i += 2)偶数的不用比较了

b = true;
for (int j = i - 1; j > 1; j--)

if (i % j == 0)

b = false;
break;有一个能整除的就不再试其它了


if (b) list1.Add(i);是质数则添加到列表中

这样,list1中的所有数就是你想要的数了
编写VB程序,将500到1000之间的所有素数输出到列表框
private sub mand1_click()
for i = 500 to 1000
for j = 2 to fix(sqr(i))
if i mod j = 0 then
exit for
elseif i mod j <> 0 and j = fix(sqr(i)) then
list1.additem i
end if
next
next
end sub
编程:输出3 ~ 100之间的所有素数?
int i;
for(i=2;i<n/2+1;i++)

if(n%i==0)
return false;

return true;

main()

int i,count=0;
for(i=100;i<=300;i++)

if(IsPrime(i))

cout<<i;
count++;
if(count%5==0)
cout<<"\n";
else
cout<<" ";



编写一个java程序,用穷举法找出2~50之间的素数,并打印出来.
public static void main(String[] args)
int i, k;
boolean yes;
for (k = 2; k <= 50; k++)
yes = true;
i = 2;
while (i <= k - 1 && yes)
if (k % i == 0)
yes = false;
i++;

if (yes)
System.out.print(k + " ");

以上是关于求大神帮忙编写一个Java程序显示指定目录中所有的文件和目录,包括文件大小以及类型信息。急求啊!!!的主要内容,如果未能解决你的问题,请参考以下文章

求大神帮忙写个批处理,实现从网络共享文件夹上拷贝文件到本地指定目录。

编写java程序找出2-100之间的所有素数 求大神

求大神帮忙用JAVA编个程序,定义抽象类Function,其中包含抽象方法doFunction()。

编写一个程序,实现二叉树的各种基本运算

求Linux大神帮忙!!!!

为啥Java聊天室程序运行时显示“不能写入到指定服务器”?求大神!