【发布时间】:2012-10-15 19:38:36
【问题描述】:
我正在尝试根据用户输入的文件名打开位于\\\server\folder\folder\folder\filename.csv 的文件。该文件将始终为 csv 文件,但名称会因部门而异。该目录将始终相同,但它不是 Perl 所在的目录。
我在尝试打开文件时遇到问题。我尝试创建 2 个变量,1 个用于目录,1 个用于文件名,但是当我尝试打开 $directory\\$FileName 时会抛出错误。我尝试使用硬编码的目录和文件名变量来执行 open 语句,但 Perl 认为该变量是文件名的一部分(这是有道理的)。这甚至可能吗?
打开文件后,我可以运行代码来编辑文件本身(这工作正常),然后我想将文件保存在新位置。这个新位置与目录相同,但我想向它添加另一个文件夹级别,然后添加相同的文件名。一种“更改前”文件位置和“更改后”文件位置。
print "What is your FULL file name going to be with extension included?";
my $fileInName = <>;
my $@dirpath= '\\\\Server\\Folder1\\Folder2\\Folder3\\Folder4\\Sorted_files\\';
my $Excel = Win32::OLE->GetActiveObject('Excel.Application') ||
Win32::OLE->new('Excel.Application', 'Quit');
my $Book = $Excel->Workbooks->Open($directory $file);
my $Sheet = $Book->Worksheets(1);
$Sheet->Activate();
这就是我现在拥有的代码。我也尝试了以下方法:
my $@dirpath= '\\\\server\\folder1\\folder2\\folder3\\call_folder4\\Sorted_files\\$fileName';
我当然收到“文件找不到错误:
如果我对整个路径名进行硬编码,我的文件打开效果很好,但我不想有 25 个单独的脚本,唯一的区别是文件名。
【问题讨论】:
-
您是否在路径周围使用单引号?请发布一些代码。那么只有一些事情会发生..
-
显示演示问题的实际代码。
$directory\$FileName不是有效的 Perl。'$directory\$FileName'和"$directory\$FileName"也不正确。 -
@Amy 使用“编辑”按钮并将代码添加到您的问题中。不要在 cmets 中发布代码。
-
我也试过了
my $@dirpath= '\\\\Server\\Folder1\\Folder2\\Folder3\\Folder4\\Sorted_files\\$fileName';正如预期的那样,它返回了文件未找到错误。
-
对不起 - 对于 cmets 中的代码 - 我会更正....
标签: perl file-io directory user-input