java File 判断文件是否为符号链接

最简单的方式,直接使用:

private static boolean isSymbolicLink(File f) throws IOException {
        return !f.getAbsolutePath().equals(f.getCanonicalPath());
    }

如果是普通文件,file.getAbsolutePath()和file.getCanonicalPath()是一样的。

如果是link文件,file.getAbsolutePath()是链接文件的路径;file.getCanonicalPath是实际文件的路径(所指向的文件路径)。

apache 使用的判断方式:

The technique used in Apache Commons uses the canonical path to the parent directory, not the file itself. I don't think that you can guarantee that
a mismatch is due to a symbolic link, but it's a good indication that the file needs special treatment.

public static boolean isSymlink(File file) throws IOException {
  if (file == null)
    throw new NullPointerException("File must not be null");
  File canon;
  if (file.getParent() == null) {
    canon = file;
  } else {
    File canonDir = file.getParentFile().getCanonicalFile();
    canon = new File(canonDir, file.getName());
  }
  return !canon.getCanonicalFile().equals(canon.getAbsoluteFile());
}
时间: 2024-11-05 07:47:01

java File 判断文件是否为符号链接的相关文章

PHP判断文件是否被修改实例

关键技术    本实例主要应用filectime()和filemtime()函数,检测文件的incode最后改变时间和最后的修改时间,并应用date()函数对检测返回的时间戳进行格式化.    filectime()函数,返回指定文件filename的inode最后改变时间,语法如下:    int filectime(string filename);    成功则返回UNIX时间戳,否则返回FALSE.    filemtime()函数,返回指定文件filename的最后修改时间,语法如下:

JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤

JAVA之旅(二十八)--File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤 我们可以继续了,今天说下File 一.File概述 文件的操作是非常重要的,我们先来看下他的基本概念 用于将文件或者文件夹封装成对象 方便对文件和文件夹的操作 File对象可以作为参数传递给流的构造函数 我们写个小例子先 package com.lgl.hellojava; import java.io.File; public class HelloJJAVA {

java 文件问题-如何使用java判断文件写入成功

问题描述 如何使用java判断文件写入成功 我使用了FileItem类将文件写入到服务器,但是我该如何判断是否写入成功,文件已经存在那个地址上 解决方案 你在去那个地址取一下,判断是否存在就行了 解决方案二: FileStream吧,这个是同步的,也就是说,写完函数才返回.所以自然你执行后面的语句就是写完了. 解决方案三: File file = new File("D://new.txt"); if(file.exists()){ //文件已存在 //file.delete();删除

JAVA判断文件编码类型

[本文转载于JAVA判断文件编码类型] java读取文件,处理过程中,可能因为文件的编码问题导致了中文乱码.有时需要将UTF-8的改为ANSI的编码.以下代码就可以判断文件是什么编码方式. 主要jar包:cpdetector.jar  下载地址http://cpdetector.sourceforge.net/  同时还需jchardet-1.0.jar这个包,否则detector.add(cpdetector.io.JChardetFacade.getInstance());  会报错: 下载

代码分析-Java中如何判断文件夹下当天有没有放文件?

问题描述 Java中如何判断文件夹下当天有没有放文件? List files = ftpUtil.getFileList(this.ftpTaskFolder);//ftp任务目录上获取任务文件 // 获取机构号全量数据传输任务文件 String organcodeFileName = """"; for (int i = 0; files != null && i < files.size(); i++) { String tempFileN

java 怎么判断一个文件已经损坏了

问题描述 java 怎么判断一个文件已经损坏了 如题:用java读取jpg.jpeg.tif.tiff.pdf文件.如何才能解析到该类文件已经损坏,返回一个false值.有没有工具包能解决这问题?

Java File类的常用方法总结

 这篇文章主要介绍了Java File类的常用方法总结,本文讲解了File类的常用方法,并对一些方法给出了代码示例,需要的朋友可以参考下     Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作.本文将对Java File文件操作类进行详细地分析,并将File类中的常用方法进行简单介绍,有需要的Java开发者可以看一下. 构造函数 代码如下: public class FileDemo { public static void main(String[] args)

linux下判断文件和目录是否存在[总结]

1.前言 工作中涉及到文件系统,有时候需要判断文件和目录是否存在.我结合APUE第四章文件和目录,总结一下如何正确判断文件和目录是否存在,方便以后查询. 2.stat系列函数 stat函数用来返回与文件有关的结构信息.stat系列函数有三种情况,分别对应文件名称.文件描述符和符号链接文件.stat结构描述了文件的属性,主要包括文件的类型.文件大小等等.详细stat结构如下所示: 1 struct stat { 2 mode_t st_mode; // file type & mode(permi

Java如何获取文件编码格式

1:简单判断是UTF-8或不是UTF-8,因为一般除了UTF-8之外就是GBK,所以就设置默认为GBK.  按照给定的字符集存储文件时,在文件的最开头的三个字节中就有可能存储着编码信息,所以,基本的原理就是只要读出文件前三个字节,判定这些字节的值,就可以得知其编码的格式.其实,如果项目运行的平台就是中文操作系统,如果这些文本文件在项目内产生,即开发人员可以控制文本的编码格式,只要判定两种常见的编码就可以了:GBK和UTF-8.由于中文Windows默认的编码是GBK,所以一般只要判定UTF-8编