如题,需要用到哪个函数呢?
另外:
为什么我用下面的代码会打出null?
File file=new File ("name");
String temp[]=file.list ();
System.out.println(temp);在线等,谢谢.
另外:
为什么我用下面的代码会打出null?
File file=new File ("name");
String temp[]=file.list ();
System.out.println(temp);在线等,谢谢.
调试欢乐多
如果此抽象路径名并不表示一个目录,则此方法将返回 null。否则,为目录中的每个文件或目录返回一个字符串数组。表示目录本身及其父目录的名称不包括在结果中。每个字符串是一个文件名,而不是一条完整路径。 不保证所得数组中的相同字符串将以特定顺序出现,特别是不保证它们按字母顺序出现。
返回:
由此抽象路径名所表示的目录中的文件和目录的名称所组成字符串数组。如果目录为空,则数组也将为空。如果抽象路径名不表示一个目录,或者发生 I/O 错误,则返回 null。
抛出:
SecurityException - 如果存在安全管理器,且其 SecurityManager.checkRead(java.lang.String) 方法拒绝对目录进行读取访问
public class FileFilter implements FilenameFilter
{
public boolean accept(File dir,String filename)
{
if(filename.endsWith("文件后缀"))
{
return true;
}
return false;
}
public static void main(String []args)
{
File f=new File("路径");
FileFilter ff=new FileFilter();
String[] strf=f.list(ff);
for(int i=0;i<strf.length;i++)
{
System.out.println(strf[i]);
}
}
}
import javax.swing.*;
public class MyFileFilter extends javax.swing.filechooser.FileFilter
{
public MyFileFilter()
{}
String accepts , descriptions ;
public MyFileFilter(String accepts , String descriptions)
{ this.accepts = accepts ;
this.descriptions = descriptions ;
}
public boolean accept(File f)
{
return f.getName().toLowerCase().endsWith(".java") || f.isDirectory();
}
public String getDescription()
{
return "Java Fichiers (*.java)" ;
}}
然后创建一个JFileChooser();来使用它Jfc.setFileSelectionMode (JFileChooser.FILES_ONLY);
//start in current directory
Jfc.setCurrentDirectory(new File("."));//SetFilter for java source files
Jfc.setFileFilter(new MyFileFilter());
//这里的a是我创建的一个JFrame实例 ,他上面有一个叫Open的按钮 ,这些蓝色的字就写在这个按钮的actionPerformaed()中,也就是说当用户点击open按钮时弹出文件选择对话框
int returnVal = Jfc.showOpenDialog(a);if(returnVal == JFileChooser.CANCEL_OPTION)
{
//return true ;
}
else
{
if(returnVal == JFileChooser.APPROVE_OPTION)
{
File file = Jfc.getSelectedFile();
try
{
//读取文件
Reader reader = new FileReader(file.getName());
}
catch(Exception ex){}
}
}
自己也写代码研究过了,发现这句File x=new File(".");就可以满足我所有愿望了,不过不知为什么,搜了很多网页也没个解说,知道的哥们告诉一下俺,让我学习一下,呵呵~
import java.io.*;
public class Filex
{
public static void main(String []args){
File x=new File(".");
try{
File[] xx=x.listFiles();
for(int i=0;i<xx.length;i++){
System.out.println(xx[i].getCanonicalPath());
System.out.println(xx[i].getName());
}
}catch(Exception ex){
}
}
}
public void scanFolder(File file) {
if (file.isDirectory()) {
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
scanFolder(files[i]);
}
}
else{
System.out.println(file.getName());
}
}
这个是我以前的搜索目录文件的一部分,你那个file要判断是不是目录
// Test.javaimport java.io.*;
import java.util.*;public class Test
{
public Vector <String> resultv ;
public Test()
{
resultv = new Vector<String>();
}
public void GetSuffix(String filename)
{
String filesuffix = null;
StringTokenizer fx = new StringTokenizer(filename,".");
int n = fx.countTokens();
if(n > 1)
{
while(fx.hasMoreTokens())
{
filesuffix = fx.nextToken();
}
int k ;
boolean NouveauSuffix=true;
for(k=0 ; k<resultv.size() ; k++)
{
if(filesuffix.equals(resultv.elementAt(k)))
{
NouveauSuffix = false ;
break ;
}
}
if(NouveauSuffix)
{
resultv.add(filesuffix);
}
}
}
public void AfficherResult()
{
int k ;
System.out.println("there are "+resultv.size()+" file types");
System.out.println("***********************************************************");
for(k=0 ; k<resultv.size() ; k++)
{
System.out.println("The "+k+" : is "+resultv.elementAt(k));
}
}
public static void main(String[] args)
{
File _file = null;
Test test = new Test();
_file = new File(".");
String files[] = _file.list();
for (int i=0; i<files.length;i++)
{
test.GetSuffix(files[i]);
}
test.AfficherResult();
}
}