📌  相关文章
📜  获取文件所有者名称的Java程序

📅  最后修改于: 2022-05-13 01:55:41.082000             🧑  作者: Mango

获取文件所有者名称的Java程序

File 类是 Java 对文件或目录路径名的表示。因为文件和目录名称在不同平台上具有不同的格式,所以简单的字符串无法命名它们。 File 类包含多种方法,用于处理路径名、删除和重命名文件、创建新目录、列出目录的内容以及确定文件和目录的几个公共属性。

  • 它是文件和目录路径名的抽象表示。
  • 路径名,无论是抽象的还是字符串形式的,通常都是绝对的或相对的。也可以通过调用此类的 getParent() 方法来获取抽象路径名的父级。
  • 首先,我们应该始终通过传递文件名或目录名来创建 File 类对象。文件系统可以对特定文件系统对象上的某些操作实施限制,例如读取、写入和执行。这些限制统称访问权限
  • File 类的实例是不可变的;也就是说,一旦创建,由 File 对象表示的抽象路径名将永远不会改变。

要在Java中查找文件所有者,我们将使用FileOwnerAttributeView 类getOwner() 方法

方法:

  • 将文件的路径作为输入。
  • 使用FileOwnerAttributeView 类创建一个具有文件属性的对象。
  • 然后使用getOwner() 方法获取所有者的姓名。
  • 打印文件所有者的姓名。

句法:

file_attribute_object.getOwner()

参数:它只能用于具有文件属性的对象。

返回类型:它返回文件所有者的名称。

示例 1:在 Windows 操作系统中

Java
// Importing modules
import java.io.*;
import java.nio.file.*;
import java.nio.file.attribute.*;
  
class GFG {
    public static void main(String[] args) {
  
        // Taking file path as input
        Path path = Paths.get("C:\\Users\\Gfg\\Article 1.txt");
  
        // Create object having the file attribute
        FileOwnerAttributeView file = Files.getFileAttributeView(path, 
                                        FileOwnerAttributeView.class);
  
        // Exception Handling to avoid any errors
        try {
            // Taking owner name from the file
            UserPrincipal user = file.getOwner();
  
            // Printing the owner's name
            System.out.println("Owner: " + user.getName());
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}


Java
// Importing modules
import java.io.*;
import java.nio.file.*;
import java.nio.file.attribute.*;
  
public class GFG {
    public static void main(String[] args) {
  
        // Taking file path as input
        Path path = Paths.get("/home/ganesh/GFG.java");
  
        // Create object having the file attribute
        FileOwnerAttributeView file = Files.getFileAttributeView(path, 
                                        FileOwnerAttributeView.class);
  
        // Exception Handling to avoid any errors
        try {
            // Taking owner name from the file
            UserPrincipal user = file.getOwner();
  
            // Printing the owner's name
            System.out.println("Owner: " + user.getName());
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}


输出

Owner: DESKTOP-O30NR1H\Aditya_Taparia

如果我们在使用getOwner() 方法时不使用异常处理,那么它将显示错误。

输出:

gfg.java:16: error: unreported exception IOException; must be caught or declared to be 
thrown
                UserPrincipal user = file.getOwner();
                                                  ^
1 error

示例 2:在 Linux 机器中(Ubuntu 发行版)

Java

// Importing modules
import java.io.*;
import java.nio.file.*;
import java.nio.file.attribute.*;
  
public class GFG {
    public static void main(String[] args) {
  
        // Taking file path as input
        Path path = Paths.get("/home/ganesh/GFG.java");
  
        // Create object having the file attribute
        FileOwnerAttributeView file = Files.getFileAttributeView(path, 
                                        FileOwnerAttributeView.class);
  
        // Exception Handling to avoid any errors
        try {
            // Taking owner name from the file
            UserPrincipal user = file.getOwner();
  
            // Printing the owner's name
            System.out.println("Owner: " + user.getName());
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

输出:

在 linux os 中获取文件所有者