在 Perl 中从网络驱动器读取文件



我正在开发一个perl脚本,该脚本从我们网络上的某个根目录开始,对所有目录中的pdf进行文档清单。 该脚本在本地运行良好,但我无法让它从网络驱动器读取文件。 我有草莓

这是我代码的开始

use strict;
use Excel::Writer::XLSX;
use Cwd;
use Tk;
use File::Find;
my @analystreports;
my @directories;

我使用 Tk Gui 获取目录

my $homeDir  = Tk::MainWindow->new->chooseDirectory;

捕获当前目录中的所有文件和文件夹

find(&grabPDF, $homeDir);
sub grabPDF {
    my $file = $_;
    if ($file =~ /.pdf/g) {
        push @analystreports, $File::Find::name;
    }
}

我的网络驱动器在网络使用中如下所示

本地 N:远程 \abc-file-01\共享数据

请原谅我的初学者代码。 我的问题是我是否对网络驱动器做错了什么,或者我是否必须向我们的管理员请求权限。 谢谢你,丹

驱动器

就是驱动器。可以传递以下任何字符串:

N:
n:
N:/
n:/

您甚至可以传递 UNC 名称。

\abc-file-01shared data
//abc-file-01/shared data

当然,您可能必须使用一些转义来构建字符串。

"N:\"
"N:/"
"n:\"
"n:/"
"\\abc-file-01\shared data"
"//abc-file-01/shared data"

但这可能无关紧要,因为您似乎从 Tk 获取字符串而不是构建它。

您的代码中存在错误。

if ($file =~ /.pdf/g) {

应该是

if ($file =~ /.pdf/) {

可能

if ($file =~ /.pdfz/) {

g在那里毫无意义,可能会导致问题(尽管我认为您的特定代码不会受到影响)。摆脱g.

最新更新