如何在Java中获取文件所有者名称?


根据问题陈述,我们将找到Java中的文件所有者名称。这里的拥有者名称表示运行文件的PC的所有者。要在Java中查找文件所有者,我们将使用FileOwnerAttributeView类的getOwner()方法。

FileOwnerAttributeView属于java.nio类。

让我们深入研究本文,了解如何使用Java编程语言来实现它。

向您展示一些实例

实例-1

假设给定的文件位置是“D:/saket.txt”。

检查给定文件的所有者名称后,输出将为:

文件的所有者是:LAPTOP-9IH5RA2V\SAKET

实例-2

假设给定的文件位置是“C:/Users/SAKET/Desktop/saket/Work”。

检查给定文件的所有者名称后,输出将为:

文件的所有者是:LAPTOP-9IH5RA2V\SAKET

算法

步骤1 - 以文件路径作为输入。

步骤2 - 使用FileOwnerAttributeView类创建一个具有文件属性的对象。

步骤3 - 声明try和catch块以避免任何错误。

步骤4 - 使用getOwner()方法从文件中提取所有者名称。

步骤5 - 打印结果。

语法

getOwner() - 用于返回或获取给定文件的当前所有者。它属于Java中的FileOwnerAttributeView类。

以下是它的语法

file_attribute_object.getOwner()

多种方法

我们提供了不同方法的解决方案。

  • 使用静态输入。

  • 使用用户定义的方法

让我们一一查看程序及其输出。

注意 - 在任何在线编辑器上执行这些程序可能无法提供正确的输出。因为在线Java编辑器无法访问您的本地系统的文件。因此,要获得预期的输出,建议您在系统中存在的本地Java编辑器中运行这些程序。

方法-1:使用静态输入

在这种方法中,文件路径将作为静态输入获取。然后根据算法获取文件所有者的名称。

示例

import java.io.*;
import java.nio.file.*;
import java.nio.file.attribute.*;
public class Main {
   //main method
   public static void main(String[] args) {

      // Taking file path as input
      Path path = Paths.get("D:/saket.txt");
      
      // Create object having the file attribute
      FileOwnerAttributeView file = Files.getFileAttributeView(path, FileOwnerAttributeView.class);
      
      // Declaring try and catch block to avoid any errors
      try {

         // Extracting owner name from the file
         UserPrincipal user = file.getOwner();
        
        // Printing the owner's name as a result
         System.out.println("The Owner of the file is: " + user.getName());
      }

      //catch block
      catch (Exception e){
         System.out.println(e);
      }
   }
}

输出

java.nio.file.NoSuchFileException: D:/saket.txt

方法-2:使用用户定义的方法

在这种方法中,文件路径将作为输入获取。然后通过将此文件路径作为参数调用用户定义的方法,并根据算法获取文件所有者的名称。

示例

import java.io.*;
import java.nio.file.*;
import java.nio.file.attribute.*;
public class Main{

   //main method
   public static void main(String[] args) {
      
      // calling user defined method
      func();
   }

   //user defined method
   static void func() {

      // Taking file path as input
      Path path = Paths.get("C:/Users/SAKET KASHYAP/Desktop/saket/Work");

      // Create object having the file attribute
      FileOwnerAttributeView file = Files.getFileAttributeView(path,FileOwnerAttributeView.class);
      // Declaring try and catch block to avoid any errors
      try {
         
         // Extracting owner name from the file
         UserPrincipal user = file.getOwner();
        
        // Printing the owner's name as a result
         System.out.println("The Owner of the file is: " + user.getName());
      }
      //catch block
         catch (Exception e){
            System.out.println(e);
      }
   }
}

输出

java.nio.file.NoSuchFileException: C:/Users/SAKET KASHYAP/Desktop/saket/Work

在这篇文章中,我们探讨了使用Java编程语言检查文件所有者名称的不同方法。

更新于: 2023年3月9日

883 次查看

启动你的 职业生涯

通过完成课程获得认证

开始
广告