【发布时间】:2010-09-21 16:10:24
【问题描述】:
我正在尝试将一个位置的所有文件复制到另一个位置,并使用 File::Copy 模块和 copy 来自该位置的命令,但现在我面临的问题是我有一个名称为 @987654326 的文件@ 其 ascii 值为 &#253 但在 unix 文件系统中它存储为 ? 所以我的问题是 copy or move command 在复制或移动到另一个位置时是否会考虑这些带有特殊字符的文件,
如果现在,那么可能的解决方法是什么?
注意: 我无法在 unix 中创建带有特殊字符的文件,因为特殊字符被替换为 ?,而在 Windows 中我不能这样做,因为在 Windows 上,特殊字符被替换为编码值,如我的&#253 案例?
my $folderpath = 'the_path';
open my $IN, '<', 'path/to/infile';
my $total;
while (<$IN>) {
chomp;
my $size = -s "$folderpath/$_";
print "$_ => $size\n";
$total += $size;
}
print "Total => $total\n";
任何建议将不胜感激。
【问题讨论】:
-
您是从 Unix 复制到 Windows 吗?如果是这样,您还需要处理在 Unix 上合法但在 Windows 上不合法的字符。举个极端的例子,“\n”是 Unix 文件名中的合法字符。
-
是的。我正在从 unix 复制到 windows。
-
@Ether:我无法获取带有特殊字符的文件大小。
-
投反对票通常是有理由的,请提供理由以便我改进问题。
-
您能否使用“?”访问该文件而不是转义码或特殊字符?
标签: perl file special-characters