问题标签 [file-find]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
4272 浏览

perl - 找到特定文件后,如何摆脱递归查找功能?

我正在使用该File::Find模块来遍历目录树。找到特定文件后,我想停止搜索。我怎样才能做到这一点?

0 投票
3 回答
2318 浏览

perl - 为什么 File::Find 不处理我损坏的符号链接?

我正在使用 Perl 的 File::Find 模块来扫描文件、目录和链接。除其他外,我希望我正在编写的实用程序报告损坏的(悬在 File::Find 的说法中)符号链接。理论上,这是通过创建一个子例程来支持的,当发现断开的链接时调用该子例程,并find使用适当值的哈希引用调用该方法,例如:

尽管故意创建一个断开的链接来测试它,但 File::Find 永远不会调用 subroutine Dangling。除此功能外,其他所有功能均有效,即ProcessFile按预期调用子程序,跟踪链接等。

0 投票
3 回答
451 浏览

windows - 如何从所需函数内部打开 File::Find 找到的文件?

我有如下代码。如果我在我的函数(由 调用)中打开文件$File::Find::name(在本例中为。”./tmp/tmp.hsearchFile::Find::find

如果我直接在另一个函数中打开文件,我可以打开文件。有人可以告诉我这种行为的原因吗?我在 Windows 上使用 activeperl,版本是 5.6.1。

0 投票
2 回答
4663 浏览

perl - 如何使用 File::Find 打印仅具有相对路径的文件?

我在下面的代码中使用File::Find/home/user/data路径中查找文件。

当我将 dir 路径更改为我需要搜索文件的路径时,它仍然为我提供了具有完整路径的文件。IE

但我想要像这样的输出

谁能建议我仅从当前工作目录中查找文件和显示的代码?

0 投票
2 回答
3165 浏览

performance - 如何使 Perl 的 File::Find 更快?

我有一个名为Lib的文件夹,我正在使用 File::Find 模块在整个目录中搜索该文件夹,例如D:\. 搜索需要很长时间,如果驱动器有很多子目录,甚至需要 5 分钟。如何更快地搜索该 Lib,以便在几秒钟内完成?

我的代码如下所示:

0 投票
4 回答
6234 浏览

perl - 如何将参数传递给处理每个文件的 File::Find 子例程?

使用File::Find,如何将参数传递给处理每个文件的函数?

我有一个遍历目录的 Perl 脚本,以便将一些 3 通道TIFF文件转换为 JPEG 文件(每个 TIFF 文件 3 个 JPEG 文件)。这可行,但我想将一些参数传递给处理每个文件的函数(缺少使用全局变量)。

这是我尝试传递参数的脚本的相关部分:

$isDryRun是一个标量。$startDir是一个字符串,一个目录的完整路径。

$IsDryRun2未设置:

在串联 (.) 或 TIFFconvert.pl 第 197 行 (#1) 的字符串中使用未初始化的值 $IsDryRun2 (W 未初始化) 使用未定义的值,就像它已经定义一样。它被解释为“”或 0,但可能是一个错误。要抑制此警告,请为您的变量分配一个定义的值。

(没有参数的旧调用是find ( \&findFiles, $startDir);:)


测试平台(但生产家庭将是 Linux 机器,Ubuntu 9.1,Perl 5.10,64 位):ActiveState Perl 64 位。视窗XP。来自 perl -v: v5.10.0 built for MSWin32-x64-multi-thread Binary build 1004 [287188] 由 ActiveState 提供

0 投票
3 回答
2558 浏览

perl - 使用 Perl 的 File::Find 时,如何将参数传递给想要的函数?

可能重复:
如何将参数传递给处理每个文件的 File::Find 子例程?

可以像这样使用 Perl 的File::Find模块:

我们如何向wanted函数添加参数?

例如,我想遍历文件/tmp从每个文件中提取一些信息,并将结果存储到不同的目录中。输出目录应作为参数给出。

0 投票
1 回答
177 浏览

perl - 为什么 File::Find 没有完全遍历一个大目录?

一个目录共有 2,153,425 个项目(根据 Windows 文件夹属性)。它包含位于几个子目录中的 .jpg 和 .gif 图像文件。任务是将图像移动到不同的位置,同时查询每个文件的名称以检索一些相关信息并将其存储在其他位置。

使用 File::Find 的脚本在 20462 个文件处完成。出于好奇,我编写了一个小递归函数来计算返回计数为 1,734,802 的项目。我想差异可以通过它不计算文件夹的事实来解释,只有通过 -f 测试的文件。

问题本身可以通过首先查询文件名而不是遍历目录来以不同的方式解决。我只是想知道是什么导致 File::Find 在所有文件的一小部分完成。

数据存储在 NTFS 文件系统上。

这是脚本的主要内容;我不认为包含 DBI 的东西是相关的,因为我只用 process_img() 中的一个计数器重新运行了脚本,它返回了相同的数字。

编辑:

eval 就 BDI 错误咆哮了几次:

我认为这是由于“St”和“South”之间的双破折号。没有报告其他性质的错误。

这是我用来计算文件的另一种方法:

0 投票
1 回答
29611 浏览

perl - perl脚本递归列出目录中的所有文件名

我已经编写了以下 perl 脚本,但问题是它总是在 else 部分并且报告不是文件。我在输入的目录中确实有文件。我在这里做错了什么?

我的要求是递归访问目录中的每个文件,打开它并以字符串形式读取它。但是逻辑的第一部分是失败的。

0 投票
1 回答
1905 浏览

perl - 如何检查目录是否可通过 UID 写入?

File::Find::Rule用于确定给定 UID 是否可写入目录?

我使用了以下测试:

但它总是返回$dir是可写的,即使对于我知道受限制的测试目录也是如此。

我可以对此测试进行哪些调整以使其正常工作?

编辑

使用use File::Find::Rule qw(permissions)导致脚本崩溃。我从来不需要permissions()在旧File::Find::Rule操作中使用以前的用法来指定此选项。

如果我按如下方式调整规则,我就会让事情正常进行。

在这里,我正在测试子目录列表中是否存在父目录:

子目录的父目录$dir.

如果该目录存在于 的列表中@subDirs,则它必须是可写的。

感谢 ikegami 推荐这个模块。