【问题标题】:Java testing for folder existance on Ubuntu 14.04Ubuntu 14.04 上文件夹存在的 Java 测试
【发布时间】:2016-02-12 10:32:32
【问题描述】:

我有一个文件夹:

/home/plattens/workspace/jguids30ma/symbols

我正在尝试在 Java 中测试它的存在:

Path objSymbolPath = Paths.get("/home/plattens/workspace/jguids30ma/symbols");
if ( Files.isDirectory(objSymbolPath) != true ) {
    System.out.println("Path is not valid");
}

我尝试了各种选项,但到目前为止,所有变体都失败了,目录测试失败并且“路径无效”。

文件夹存在。

【问题讨论】:

  • 试试这个 if (Files.exists(objSymbolPath)) {sop("exist")}else{sop("not exist")}
  • 我试过了,它也失败了,我认为这可能与我的用户空间中的位置有关。
  • 您是否检查了导入包,因为我尝试了此代码,它对我有用我导入 java.nio.file.Path
  • 我导入的包是:import java.io.File;导入 java.io.IOException;导入 java.nio.charset.Charset;导入 java.nio.file.Files;导入 java.nio.file.Path;导入 java.nio.file.Paths;
  • 您是否尝试在您的主目录中创建一个文件夹并对此进行测试?

标签: java directory ubuntu-14.04 exists


【解决方案1】:

我还在 Ubuntu-14.04 上用你的代码进行了测试,结果是真的。

所以我认为你的文件夹可能有问题。

我认为您需要使用“ls -la”命令进行检查, 和“d___r__”,尤其是其他用户的 r 选项..

希望你发现有问题。

【讨论】:

  • “ls -la”的结果:“drwxrwxr-x 2 plattens plattens 4096 Feb 12 10:45 symbols”
  • 它不适用于像 /home 这样的简单文件夹吗?
【解决方案2】:

我测试了您的代码并进行了编译。我得到了正确的输出,因此您可以参考此代码并删除不必要的导入包。

package test;

import java.nio.file.Path;
import java.nio.file.Files;
import java.nio.file.Paths;

public class Test {
    public static void main(String[] args) {
        Path objSymbolPath = Paths.get("/home/admin/Desktop/testing");
        if (Files.isDirectory(objSymbolPath) != true) {
            System.out.println("Path is not valid");
        } else {
            System.out.println("Path is valid");
        }
    }
}

希望对你有帮助。

【讨论】:

    【解决方案3】:

    很奇怪,只是将代码修改成这样:

    objSymbolPath = Paths.get(arystrAttr[1]);
    
    if ( clsFolderTest.blnExists(Paths.get("/home/")) != true ) {
        System.out.println("doesn't exist!");
    }
    if ( clsFolderTest.blnExists(Paths.get("/home/plattens/")) != true ) {
        System.out.println("doesn't exist!");
    }
    if ( clsFolderTest.blnExists(Paths.get("/home/plattens/workspace/")) != true ) {
        System.out.println("doesn't exist!");
    }
    if ( clsFolderTest.blnExists(Paths.get("/home/plattens/workspace/jguids30ma/")) != true ) {
        System.out.println("doesn't exist!");
    }
    if ( clsFolderTest.blnExists(Paths.get("/home/plattens/workspace/jguids30ma/symbols/")) != true ) {
        System.out.println("doesn't exist!");
    }
    if ( clsFolderTest.blnExists(objSymbolPath) != true ) {
        clsMain.errMessage(clsSymbol.class.toString() + ":alstrToSVG"
                          ,"Symbol path does not exists or is not a folder!");
        return null;                                                            
    }
    

    所有对文字路径的单独检查都有效,但是最后一次测试仍然失败,最后证明参数'arystrAttr'实际上在路径周围有引号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-18
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多