获取一个目录下的所有文件和目录方法:
importjava.io.File;
publicclassFileTest{
publicstaticvoidmain(String[]args){
/**
*将目标目录封装成File对象。
*/
Filedir=newFile("/Users/zym/Desktop/Mac应用程序");
/**
*获取目录下的所有文件和文件夹
*/
String[]names=dir.list();
for(Stringname:names){
System.out.println(name);
}
}
}
通过文件过滤器获取某个目录下的文件,例如所有的 .txt、.doc文件。
过滤器:
importjava.io.File;
importjava.io.FilenameFilter;
{
@Override
publicbooleanaccept(Filedir,Stringname){
returnname.endsWith(".doc");
}
}
获取某个目录下的按照过滤器规则的所有文件:
importjava.io.File;
publicclassFileTest{
publicstaticvoidmain(String[]args){
/**
*将目标目录封装成File对象。
*/
Filedir=newFile("/Users/zym/Desktop/Mac应用程序");
/**
*通过过滤器获取目录下的所有的.doc文件
*/
String[]names=dir.list(newFilterByDoc());
for(Stringname:names){
System.out.println(name);
}
}
}
希望能对您有所帮助!
B. 怎么获取文件路径和目录
File类有两个常用方法可以得到文件路径一个是:getCanonicalPath(),另一个是:getAbsolutePath(),可以通过File类的实例调用这两个方法例如file.getAbsolutePath()其中file是File的实例对象。下面是一个具体例子:
public class PathTest
{
public static void main(String[] args)
{
File file = new File(".\\src\\");
System.out.println(file.getAbsolutePath());
try
{
System.out.println(file.getCanonicalPath());
} catch (IOException e)
{
e.printStackTrace();
}
}
}
getAbsolutePath()和getCanonicalPath()的不同之处在于,getCanonicalPath()得到的是一个规范的路径,而getAbsolutePath()是用构造File对象的路径+当前工作目录。例如在上面的例子中.(点号)代表当前目录。getCanonicalPath()就会把它解析为当前目录但是getAbsolutePath()会把它解析成为目录名字(目录名字是点号)。
下面是上面程序在我电脑上的输出:
G:\xhuoj\konw\.\src\
G:\xhuoj\konw\src\
C. java中获取文件路径的几种方式
获取当前类的所在工程路径;如果未添加“/”,则代码如下:
File f = new File(this.getClass().getResource("").getPath());
System.out.println(f);
执行结果为:C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin\com\test
获取当前类的绝对路径;第二种方法为:
File directory = new File("");//参数为空
String courseFile = directory.getCanonicalPath() ;
System.out.println(courseFile);
执行结果为:C:\Documents and Settings\Administrator\workspace\projectName
获取当前类的所在工程路径;第三种方法为:
URL xmlpath = this.getClass().getClassLoader().getResource("selected.txt");
System.out.println(xmlpath);
执行结果为:file:/C:/Documents%20and%20Settings/Administrator/workspace/projectName/bin/selected.txt
获取当前工程src目录下selected.txt文件的路径;第四种方法为:
System.out.println(System.getProperty("user.dir"));
执行结果为:C:\Documents and Settings\Administrator\workspace\projectName
获取当前工程路径;第五种方法为:
System.out.println(System.getProperty("java.class.path"));
执行结果为:C:\Documents and Settings\Administrator\workspace\projectName\bin
以上介绍了五种获取文件路径的方法,每种方法都有其特点和适用场景。第一种方法适用于需要获取类所在目录的路径,但结果包含bin文件夹;第二种方法适用于获取文件系统中的绝对路径;第三种方法适用于获取类加载器资源的URL路径,结果包含文件协议;第四种方法获取当前工作目录,即工程根目录;第五种方法获取类路径,通常指向编译后的类文件所在的目录。
在实际开发中,根据具体需求选择合适的方法。例如,如果需要获取源代码文件的路径,可以使用第三种方法;如果需要获取编译后的类文件路径,则使用第五种方法更为合适。
需要注意的是,路径格式在Windows和Linux系统中可能存在差异,因此在跨平台项目中应谨慎使用这些方法。同时,建议在编写代码时考虑路径的可读性和安全性,避免硬编码路径。
在处理文件路径时,务必考虑文件系统的限制和特殊字符,确保路径的正确性和兼容性。此外,对于敏感文件和目录,应采取适当的访问控制措施,以防止意外访问或修改。
D. 文件存在file找不到
文件存在file找不到(文件存在file找不到文件)File (不是访问文件数据的)
每一个实例可以表示硬盘(文件系统)中的一个文件或目录(实际上表示的是一个抽象路径)主要是JAVA为文件这块的操作(如创建、删除、新增等)而设计的相关类包名是java.io,其实现了Serializable, Comparable两大接口以便于其对象可序列化和比较。
// File file = new File("c:/xxx/xxx/xx/xxx.txt"); //-----绝对路径不推荐使用名词解释1)相对路径顾名思义,相对路径就是相对于当前文件的路径。开发中一般表示路径使用这个方法。2)绝对路径 绝对路径就是你的电脑上的文件或目录在硬盘上真正的路径。 //使用File访问当前项目目录下的demo.txt文件File file = new File("./demo.txt");//获取文件名字String name = file.getName();System.out.println(name);//获取文件大小(单位是字节)long len = file.length();System.out.println(len+"字节");//是否可读可写boolean cr = file.canRead();boolean cw = file.canWrite();System.out.println("是否可读:"+cr);System.out.println("是否可写:"+cw);//是否隐藏文件boolean ih = file.isHidden();System.out.println("是否隐藏:"+ih);createNewFile()方法 创建新文件//在当前目录下新建一个文件:test.txtFile file = new File("./test.txt");//boolean exists()判断当前File表示的位置是否已经实际存在该文件或目录if(file.exists()){ System.out.println("该文件已存在!");}else{ file.createNewFile();//将File表示的文件创建出来 System.out.println("文件已创建!");}delete()方法 文件删除File file = new File("test.txt");//同属于一个文件夹,可以不写 "./"if(file.exists()){ file.delete(); //删除文件 System.out.println("文件已删除!");}else{ System.out.println("文件不存在!");}mkDir()、mkDirs(): 创建目录//在当前目录下新建一个目录:demo// File dir = new File("demo");File dir = new File("./a/b/c/d/e/f");if(dir.exists()){ System.out.println("该目录已存在!");}else{ //dir.mkdir();//创建目录时要求所在的目录必须存在 ,所以一般不用 dir.mkdirs();//创建目录时会将路径上所有不存在的目录一同创建 System.out.println("目录已创建!");}delete() 删除一个目录,但是只能删除空目录 //将当前目录下的demo目录删除File dir = new File("demo");// File dir = new File("a");if(dir.exists()){ dir.delete();//delete方法删除目录时只能删除空目录 System.out.println("目录已删除!");}else{ System.out.println("目录不存在!");}listFiles方法 可以访问一个目录中的所有子项//获取当前目录中的所有子项File dir = new File(".");/* boolean isFile() 判断当前File表示的是否为一个文件 boolean isDirectory() 判断当前File表示的是否为一个目录 */if(dir.isDirectory()){ /* File[] listFiles() 将当前目录中的所有子项返回。返回的数组中每个File实例表示其中的一个子项 */ File[] subs = dir.listFiles(); System.out.println("当前目录包含"+subs.length+"个子项"); for(int i=0;i<subs.length;i++){ File sub = subs[i]; System.out.println(sub.getName()); }}重载的 listFiles方法: 有参的//该方法要求传入一个文件过滤器,并仅将满足该过滤器要求的子项返回。File dir = new File(".");if(dir.isDirectory()){ File[] subs = dir.listFiles(new FileFilter(){ public boolean accept(File file) { return file.getName().startsWith("."); }});System.out.println(subs.length);Lambda表达式:
JDK8之后,java支持了lambda表达式这个特性.可以用更精简的代码创建匿名内部类.但是该匿名内部类实现的接口只能有一个抽象方法,否则无法使用!是编译器认可的,最终会将其改为内部类编译到class文件中
Lambda特征:
可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。可选的大括号:如果主体包含了一个语句,就不需要使用大括号。可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定表达式返回了一个数值。
// 语法(参数列表) ->{ 方法体} //匿名内部类形式创建FileFilter ---- ①FileFilter filter = new FileFilter() { public boolean accept(File file) { return file.getName().startsWith("."); }};//lambda 写法 写① 的匿名内部类创建 FileFilter ---- ②FileFilter filter2 = (File file)->{ return file.getName().startsWith(".");};//lambda表达式中参数的类型可以忽略不写 lambda 再次简化②的版本----③FileFilter filter3 = (file)->{ return file.getName().startsWith(".");};/* lambda表达式方法体中若只有一句代码,则{}可以省略 如果这句话有return关键字,那么return也要一并省略! ------基于③ 再次简化的写法版本*/FileFilter filter4 = (file)->file.getName().startsWith("."); 学习记录,如有侵权请联系删除。
E. android怎样拿到file的路径
Environment 常用方法:
* 方法:getDataDirectory()
解释:返回 File ,获取 Android
数据目录。
* 方法:getDownloadCacheDirectory()
解释:返回 File ,获取 Android
下载/缓存内容目录。
* 方法:getExternalStorageDirectory()
解释:返回 File ,获取外部存储目录即
SDCard
* 方法:(String type)
解释:返回 File
,取一个高端的公用的外部存储器目录来摆放某些类型的文件
* 方法:getExternalStorageState()
解释:返回 File
,获取外部存储设备的当前状态
* 方法:getRootDirectory()
解释:返回 File ,获取 Android 的根目录
file的getPath getAbsolutePath和getCanonicalPath的不同
File的这三个方法在api中都有说明,仅以程序为例说明。
package test;
import
java.io.File;
import java.io.IOException;
public class TestFilePath
{
public static void main(String[] args) {
// TODO Auto-generated
methodstub
System.out.println(System.getProperty("user.dir"));
try
{
System.out.println("-----默认相对路径:取得路径不同------");
File file1 =new
File("..\\src\\test1.txt");
System.out.println(file1.getPath());
System.out.println(file1.getAbsolutePath());
System.out.println(file1.getCanonicalPath());
System.out.println("-----默认相对路径:取得路径不同------");
File
file =new
File(".\\test1.txt");
System.out.println(file.getPath());
System.out.println(file.getAbsolutePath());
System.out.println(file.getCanonicalPath());
System.out.println("-----默认绝对路径:取得路径相同------");
File
file2 =new
File("D:\\workspace\\test\\test1.txt");
System.out.println(file2.getPath());
System.out.println(file2.getAbsolutePath());
System.out.println(file2.getCanonicalPath());
}
catch (IOException e) {
// TODOAuto-generated catch
block
e.printStackTrace();
}
}
}
程序执行结果如下:
F:\eclipseworkspace\testejb
-----默认相对路径:取得路径不同------
..\src\test1.txt
F:\eclipseworkspace\testejb\..\src\test1.txt
F:\eclipseworkspace\src\test1.txt
-----默认相对路径:取得路径不同------
.\test1.txt
F:\eclipseworkspace\testejb\.\test1.txt
F:\eclipseworkspace\testejb\test1.txt
-----默认绝对路径:取得路径相同------
D:\workspace\test\test1.txt
D:\workspace\test\test1.txt
D:\workspace\test\test1.txt
结论:
当输入为绝对路径时,返回的都是绝对路径。
当输入为相对路径时:
getPath()返回的是File构造方法里的路径,是什么就是什么,不增不减
getAbsolutePath()返回的其实是user.dir+getPath()的内容,从上面F:\eclipseworkspace\testejb、F:\eclipseworkspace\testejb\..\src\test1.txt、F:\eclipseworkspace\testejb\.\test1.txt可以得出。
getCanonicalPath()返回的就是标准的将符号完全解析的路径
public String
getAbsolutePath()返回抽象路径名的绝对路径名字符串。
如果此抽象路径名已经是绝对路径名,则返回该路径名字符串,这与 getPath()
方法一样。如果此抽象路径名是空的抽象路径名,则返回当前用户目录的路径名字符串,该目录由系统属性 user.dir
指定。否则,使用与系统有关的方式分析此路径名。在 UNIX 系统上,通过根据当前用户目录分析某一相对路径名,可使该路径名成为绝对路径名。在 Microsoft
Windows
系统上,通过由路径名指定的当前驱动器目录(如果有)来分析某一相对路径名,可使该路径名成为绝对路径名;否则,可以根据当前用户目录来分析它。
返回:
绝对路径名字符串,它与此抽象路径名表示相同的文件或目录的
抛出:
SecurityException
- 如果无法访问所需的系统属性值。
另请参见:
isAbsolute()
public String getCanonicalPath()
throws
IOException返回抽象路径名的规范路径名字符串。
规范路径名是绝对路径名,并且是惟一的。规范路径名的准确定义与系统有关。如有必要,此方法首先将路径名转换成绝对路径名,这与调用
getAbsolutePath() 方法的效果一样,然后用与系统相关的方式将它映射到其惟一路径名。这通常涉及到从路径名中移除多余的名称(比如 "." 和
"..")、分析符号连接(对于 UNIX 平台),以及将驱动器名转换成标准大小写形式(对于 Microsoft Windows
平台)。
表示现有文件或目录的每个路径名都有一个惟一的规范形式。表示非存在文件或目录的每个路径名也有一个惟一的规范形式。非存在文件或目录路径名的规范形式可能不同于创建文件或目录之后同一路径名的规范形式。同样,现有文件或目录路径名的规范形式可能不同于删除文件或目录之后同一路径名的规范形式。
返回:
表示与此抽象路径名相同的文件或目录的规范路径名字符串
抛出:
IOException
- 如果发生 I/O 错误(可能是因为构造规范路径名需要进行文件系统查询)
SecurityException -
如果无法访问所需的系统属性值,或者存在安全管理器,且其 SecurityManager.checkRead(java.io.FileDescriptor)
方法拒绝对该文件进行读取访问
从以下版本开始:
JDK1.1
F. javascript 中怎样获取file里的完整路径,如:D:\E\1.jpg
楼主问的应该是获取一个file input表单域的文件名全路径吧,这是不能实现的,除非在IE6下面。这个已经因为安全问题被现代所有浏览器屏蔽了,只能获取到文件名
G. file://是什么意思
一、含义
1、IT中的File,本地文件传输协议,File协议主要用于访问本地计算机中的文件,就如同在Windows资源管理器中打开文件一样。
2、INUX 命令File,file 命令读取用 File 参数或者 FileList 变量指定的文件,在每个文件上执行一系列测试,然后将它们按照类型分类。
3、要使用File协议,基本的格式如下:file:///文件路径,比如要打开F:盘flash文件夹中的1.swf文件,那么可以在资源管理器或IE地址栏中键入:file:///f:/flash/1.swf并回车。
4、然后此命令将文件类型写入标准输出。文件可以是常规文件、目录、FIFO(指定的管道)、块特殊文件、字符特别文件、符号链接或者套接字类型。在漫画中也指"话"
二、英语解释
1、英语单词File,有文件夹,公文箱,把…归档等意思。
2、vt.提出(离婚诉讼或其他讼案);把……归档;用锉锉;发稿,寄给报社。
3、vi.发送(报道给报社);排成一行行走;提出申请。
4、n.文件夹;卷宗;纵列。