标签: pathname

如何从 Java JAR 文件中获取资源/文件的路径

我正在尝试获取位于 java jar 之外的文件的路径,但我不想使用绝对路径。一个例子:假设 jar 位于 ~/lib/myjar.jar 并且该文件位于同一文件夹中。我尝试的是这样的,但失败了:

File myfile = new File(this.getClass().getResource("../../../").toURI());
Run Code Online (Sandbox Code Playgroud)

注意:我的包是 com.contro.gui,这就是为什么我有“../../../”,以便访问“root”

我不确定如何访问该文件。有什么建议吗??如果我要访问的文件位于 ~/res/ 这样的其他文件夹中怎么办?

java resources jar filepath pathname

2
推荐指数
1
解决办法
6595
查看次数

如何使用Win32 API删除目录限定符以简化路径名?

如果你有一个像"C:\ foo \.\ bar\.."的路径,有一种简单的方法使用Win32 API删除目录限定符,以便将其简化为"C:\ foo"?


更新:这似乎是一个更复杂的问题.在这个简单的"C:\ foo \.\ bar\.."示例中,它与PathCanonicalize()和GetFullPathName()一起使用以获得"C:\ foo"作为结果.

但是,我传递的路径有一个符号链接.所以,假设我传入的是"C:\ NaNa\Boo\Bin\..","C:\ NaNa"是指向"D:\ Apple"的链接.然后我得到"C:\ NaNa\Boo\Bin\.."回复率比"C:\ NaNa\Boo"

我会假设函数只使用字符串,但使用符号链接似乎有所不同:-(


更新#2:看来我传入的字符串中有换行符(0x0d),这使得函数无法正常工作!

c++ winapi pathname

2
推荐指数
1
解决办法
661
查看次数

在Common Lisp中获取路径名的最后一个组件

虽然我可以建立一个路径名,例如

(make-pathname :directory '(:RELATIVE "dir" "subdir" "subsubdir"))
Run Code Online (Sandbox Code Playgroud)

我如何subsubdir从这样的路径名回来(假设它是一个目录)?我需要从路径名中提取最后一个dir,就像这个Unix命令一样:

$ basename /usr/local/share/
share
Run Code Online (Sandbox Code Playgroud)

directory common-lisp pathname

2
推荐指数
1
解决办法
904
查看次数

在PHP中获取继承类的路径名

我正在尝试获取从超类继承的PHP类的绝对路径名.看起来应该很简单.我认为下面的代码尽可能简洁地解释了它:

// myapp/classes/foo/bar/AbstractFoo.php
class AbstractFoo {

    public function getAbsolutePathname() {
        // this always returns the pathname of AbstractFoo.php
        return __FILE__;
    }

}


// myapp/classes/Foo.php
class Foo extends AbstractFoo {

    public function test() {
        // this returns the pathname of AbstractFoo.php, when what I
        // want is the pathname of Foo.php - WITHOUT having to override
        // getAbsolutePathname()
        return $this->getAbsolutePathname();
    }

}
Run Code Online (Sandbox Code Playgroud)

我不想覆盖的原因getAbsolutePathname()是会有很多类扩展AbstractFoo,在文件系统的许多不同的地方(Foo实际上是一个模块),它似乎违反了DRY.

php pathname

1
推荐指数
1
解决办法
486
查看次数

Bash数组和路径名扩展:奇怪的输出

我在我的主目录的两个文件.phpsh,并.php_history使用他们的名字我想测试路径名的扩展以及它如何影响在bash关联数组.我遇到的结果似乎很奇怪,我无法解释它们.我在这里尝试了很多变化.

 >my_array_filename_var=(".phpsh"=10 ".php_history" =20)
 >echo ${my_array_filename_var[.phpsh]}
 ERROR
 >echo "${my_array_filename_var[.phpsh]}"
 ERROR
 # This one below understandably doesn't work. But I was pulling my hair out.
 >echo "${my_array_filename_var[".phpsh"]}"
 ERROR
 echo "${my_array_filename_var[\".phpsh\"]}"
 ERROR
 >echo "${my_array_filename_var[.phpsh]}"
 ERROR
 >echo "${my_array_filename_var[phpsh]}"
 .phpsh=10
 >echo "${my_array_filename_var[php_history]}"
 .phpsh=10
 >echo "${my_array_filename_var[\.php_history]}"
 ERROR
Run Code Online (Sandbox Code Playgroud)

ERROR令牌代表

bash: .phpsh: syntax error: operand expected (error token is ".phpsh")
Run Code Online (Sandbox Code Playgroud)

是否有一些规则说我的关键数组的键中没有点字符?bash中的路径名扩展如何发挥作用?

arrays bash pathname

1
推荐指数
1
解决办法
289
查看次数

为什么这个Bash路径名扩展不会发生?

我正在努力与Bash变量扩展.请参阅以下代码:

~/tmp 689$ a=~/Library/Application\ *; echo $a
/Users/foo/Library/Application *

~/tmp 690$ echo ~/Library/Application\ *
/Users/foo/Library/Application Scripts /Users/foo/Library/Application Support
Run Code Online (Sandbox Code Playgroud)

由于扩展的顺序是brace-> tilde-> parameter - > ....-> pathname,为什么路径名扩展不应用于$a第二个命令中的相同方式?

[添加]

空格逃逸是否隐藏了以下输出的行为?

~/tmp 705$ a=~/Library/Application*; echo $a
/Users/foo/Library/Application Scripts /Users/foo/Library/Application Support
Run Code Online (Sandbox Code Playgroud)

bash variable-expansion pathname

1
推荐指数
1
解决办法
373
查看次数

android如何获取drawable的路径名

如何获取资源文件夹中drawable的路径名?我试图在我的资源文件夹中获取图像并将其传递给函数进行解码.

路径"android.resource://com.myapp.example/"+ R.drawable.image"没有用.

 Bitmap bitmap;

 File image = new File("android.resource://com.myapp.example/"+ R.drawable.image);

 bitmap.decodeFile(image);


public Bitmap decodeFile(File f) {
    try {
        // decode image size
        BitmapFactory.Options o = new BitmapFactory.Options();
        o.inJustDecodeBounds = true;
        BitmapFactory.decodeStream(new FileInputStream(f), null, o);
        // Find the correct scale value. It should be the power of 2.
        final int REQUIRED_SIZE = 70;
        int width_tmp = o.outWidth, height_tmp = o.outHeight;
        int scale = 1;
        while (true) {
            if (width_tmp / 2 < REQUIRED_SIZE
                    || height_tmp / 2 < REQUIRED_SIZE)
                break; …
Run Code Online (Sandbox Code Playgroud)

android pathname android-drawable

0
推荐指数
1
解决办法
1万
查看次数

将路径目录传递给 PowerShell 中的函数

我是 PS 新手,我正在尝试编写一个从全局变量接收参数的函数。我想将从 .txt 文件读取的路径名传递到同一脚本中的函数中。

function GetCorrectChildren ([string] $homepath,$min,$max,$row)
{
    #Testpoint 2
    write-host "homepath = $homepath"
    $ColItem = (Get-ChildItem $homepath |? {$_.PSIsContainer} | sort-object)
}

foreach ($homepath in (Get-Content $PSScriptRoot\homepath_short.txt))
{
    $freeSpace = [win32api]::GetDiskFreeSpace("$homepath").FreeBytesAvailable / 1073741824
    $totalSpace = [win32api]::GetDiskFreeSpace("$homepath").TotalNumberOfBytes / 1073741824 
    $percentageFreeSpace = $freeSpace / $totalSpace * 100

    if($freeSpace -lt $threshold)
    {
    #Testpoint 1
    write-host "homepath = $homepath"
    GetCorrectChildren ("$homepath",$min,$max,$OriRow)
}
Run Code Online (Sandbox Code Playgroud)

对于#Testpoint 1,它正确返回路径名,即\\C:\test1\test_a。然而其中#Testpoint 2却又回归\\C:\test1\test_a 20 30 System.Object
我不明白这是什么20 30 System.Object意思以及它来自哪里?有人可以解释一下吗?谢谢

powershell parameter-passing pathname

0
推荐指数
1
解决办法
2420
查看次数