- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我想获取目录中除隐藏文件(名称以点开头的文件)之外的所有文件:
@files = Pathname.new('.').children.select do |file|
file.basename[0] != '.'
end
我不能那样做,因为#basename 以"<#Pathname:.envrc>"
的形式返回字符串.所以我需要做到file.basename =~ '#<Pathname:.'
, 这对我来说似乎很奇怪。
为什么他们用“路径名”作为前缀?
最佳答案
看OP的回答,我想,可以写成
@files = Pathname.new('.').children(false).reject do |file|
file.to_s.start_with? '.'
end
文档children
是说 - 如果将 with_directory 设置为 false,则返回的路径名将仅包含文件名。 这意味着,我们将获取所有基本名称作为 Pathname 对象,如 路径名:.git
,路径名:English.rb
。现在应用#to_s
,我们将得到'.git'
,'English.rb'
。因此,现在我们可以在其上使用 String#start_with?
方法来测试它是否以 .
开头。
关于ruby - 为什么 ruby Pathname#basename 返回前缀为 "Pathname:"的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24127429/
出于某种原因,我的代码正在做这种奇怪的事情,其中 fileparse 只打印(字面意思)File::Basename use strict; use warnings 'all'; use
>>> os.path.basename("../dir/") '' $ basename ../dir/ dir documentation os.path.basename(path) Retur
我确定我遗漏了什么,但我无法弄清楚。鉴于: $ find -type f ./hello.txt ./wow.txt ./yay.txt 为什么接下来的两个命令呈现不同的结果? $ find -typ
非常感谢您的帮助。 标题说明一切:使用有什么区别: echo `basename $HOME` 和 echo $(basename $HOME) 请注意,我知道 basename 命令的作用,两种语法
我有一个文件数组,我试图仅获取文件的基本名称,而不包含长扩展名。下面是数组的示例: [ '/public/uploads/contentitems/.DS_Store', '/public/u
我正在编写一个需要接收文件名的 bash 脚本,它可能类似于: “文件名 - Copy.txt” 当我尝试获取此文件的文件名时,basename 似乎将破折号作为操作数拾取并失败。 basename:
FOLDERS=$( basename "$(find "${LOG_DIR}" ! -path "${LOG_DIR}" -type d )") /storage/archive/fakeagent
我写了一个 shell 脚本来把我这边的很多 JPG 转换成 pdf #!/bin/bash set -xv for i in `ls -v *.JPG`; do i=$(basename "$i
给定以下命令: $(basename "/this-directory-does-not-exist/*.txt" ".txt") 它不仅输出 txt 文件,还输出其他文件。另一方面,如果
我需要一个作为 bash 脚本参数的文件的基本名称。基本名称应该去掉其文件扩展名。假设 $1 = "/somefolder/andanotherfolder/myfile.txt",所需的输出将是 "
我们有: $path = "/home/httpd/html/index.php"; $file = basename($path); // $file is set to "inde
我有一个奇怪的错误,在下面的代码中,basename() 已完成删除 $file: $files = glob(DIR_APPLICATION . 'controller/module/*.php')
我有一个奇怪的错误,在下面的代码中,basename() 已完成删除 $file: $files = glob(DIR_APPLICATION . 'controller/module/*.php')
我在一个 Windows 盒子上,我正在使用 basename 从一些目录中提取文件名。显然,文件名的大小是有限制的,否则 basename 会抛出一个错误(之前我在 linux 上,我不记得有什么问
编写脚本来优化我的网络图片。名称中包含空格的文件名和目录有问题。 这是我所拥有的: read -p "Enter full path from root (/) to your site... exa
这是我的片段: __VERSION="0.0.1" __COMMAND="${basename}" __USAGE="$__COMMAND -abc args" if [ $# == 0 ] ; th
#!/bin/bash file=debian.deb test=basename $file .deb DP="blah/blah/$test/$test.php" read -p "[$DP]:
在 bash Linux 中 v1=$(basename $0) gives filename.ext v1=${v1%.*}.log replaces e
运行 os.path.basename(__file__) 有时给我的文件名是 foo.py,但有时它会给出 foo.pyc。我知道pyc是编译后的文件,编译后可能每次都使用它。我只是对为什么 bas
这是一个简单的例子来说明这个问题: print basename('léquipe.jpg'); // léquipe.jpg print basename('équipe.jpg'); // qu
我是一名优秀的程序员,十分优秀!