java I/O流File类 String[]list()方法返回为空的解决办法

今天在写java,I/O流时,运行了教材上的一个程序;

正常时可以运行的

import java.io.File;
import java.io.FilenameFilter;

public class GetFileInfo9_13 {
	public static void main(String args[]) {
		String filename="C:\\\\Program Files\\\\Java\\\\jre6\\\\lib\\\\rt.jar";
		String path="C:\\Program Files\\java\\jdk1.6.0_45\\lib";
		File file=new File(filename);
		if(file.exists()) {
			System.out.println("文件"+file.getName()+"信息如下:");
			System.out.println("绝对路径"+file.getAbsolutePath());
			System.out.println("上级目录"+file.getParent());
			System.out.println("是否可读"+file.canRead());
			System.out.println("是否可写"+file.canWrite());
			System.out.println("是否隐藏"+file.isHidden());
		}
		else {
			System.out.println("文件不存在");
		}
		File filepath = new File(path);
		String[] fileFileList = filepath.list();System.out.println(fileFileList[0]);
		String[] fileFilterList=filepath.list(new Filter(".jar"));
		System.out.println("没过滤的文件信息如下:");
		if(fileFileList!=null) {
			for(int i=0;i<fileFileList.length;i++) System.out.println(fileFileList[i]);		
			
		}
		System.out.println("后缀为jar的文件信息如下:");
		if(fileFilterList!=null) {
			for(int j=0;j<fileFilterList.length;j++) {
				System.out.println(fileFilterList[j]);
			}
		}		
	}	
	
}
class Filter implements FilenameFilter
{
	String s;
	Filter(String s){
		this.s=s;
	}
	public boolean accept(File dir,String name) {
		if(name.endsWith(s))
			return true;
		else
			return false;
	}
	
}

但是我的就是不显示,然后我将path,变量路径给换了,变成"C:\Java\lib"然后就能跑了,

换成"C:\\Program Files\\java\\jdk1.6.0_45\\lib",也能运行了。

 

 原因及解决:应该就是Program Files的问题了,我的电脑只有c盘,就跟初始的java文件不能直接在C盘目录下存一样,Program Files有权限问题应该是(windows11的管理员权限问题),之前怎么运行都不出来,解决方法就是,先找一个有别于Program Files的路径,然后运行一遍,之后再改过来,就行了。

总结:本人菜鸡一枚,原因及解决方法可能凑巧,欢迎指正;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值