windows - Perl 无法在 Windows 10 中找到现有目录
问题描述
我正在尝试列出目录 Doc 中的文件。在这个目录里面有子目录。perl 无法单独访问子目录目录“用户”之一。下面是命令
my @ListofFiles = File::Find::Rule->file()
->name( '*.xml' , '*.wav' )
->in( $target_dir );
列出了子目录中的所有 xml 文件,但目录 "user" 下除外。这个目录在 Windows 资源管理器中非常可见,我可以通过光标进行交互。但是 perl 无法访问它。当我使用 perl 命令检查目录“用户”是否存在时。它显示No such Directory is found。
Additional info : Directory "doc" has following
1) Directory "Audio " -> Contains .wav files
2) Directory "Zip" -> contains .zip files
3) Movie.xml
4) Image.xml
5) Directory "user" -> contains .xml
The .wav and .xml files are fethched without any issues
我不确定这里有什么问题。请帮忙 。
解决方案
尝试执行以下脚本,让我们知道它是否适合您,同时向我们展示结果:
#!/usr/bin/perl
use strict; use warnings;
use Data::Dumper;
use File::Find::Rule;
my $directory = "C:/doc";
my @subdirs = File::Find::Rule->directory->in( $directory );
print "Subdirectories:\n".Dumper(\@subdirs);
my @ListofFiles = File::Find::Rule->file()
->name( '*.xml' , '*.wav' )
->in( $directory );
print "ListofFiles:\n".Dumper(\@ListofFiles);
推荐阅读
- javascript - 如何提取嵌套的对象数组并将它们放入核心数组中?
- html - 如何根据视口显示条件占位符和标签
- react-hooks - Todo(...). 渲染没有返回任何内容。这通常意味着缺少 return 语句。或者,不渲染任何内容,返回 null
- azure-pipelines-release-pipeline - JSON 替换中的转义期以覆盖日志记录命名空间
- c - 如果用户输入“sum(x,y)”我怎样才能得到 x 和 y 作为双打
- node.js - 使用命令处理程序 discord.js 发送消息
- windows - 仅使用 OpenSSH/Git 在 Windows 服务器上托管 Git 存储库
- scala - 使用 saveToEs 将数据从 Spark DataFrame 保存到 Elasticsearch 时,如何正确解析时间戳?
- vb.net - 如何删除 DateTimePicker 控件的边框?
- r - 使用标准计算天数