Perl   发布时间:2022-04-05  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用Perl在Windows上创建Unicode目录?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我很难创建包含Unicode的目录名称.我在Windows XP和Perl Camelbox 5.10.0上.

到目前为止,我曾经使用File :: Path qw(make_path)创建目录 – 在第一个西里尔语目录出现之前一直运行正常.

对于文件Win32API :: File qw(CreateFileW)如果文件名是UTF-16le编码,则工作正常.目录有类似的东西吗?或者也许是一个参数,告诉CreateFileW创建Unicode路径,如果它不存在?

谢谢,NELE

解决方法

Win32.pm为CreateDirectory和朋友提供了一个界面:

上一个答案:

注意:将此保留在此处作为记录,因为您尝试直接在程序中使用CreateDirectoryW.

要手动执行此操作,请使用Win32::API导入CreateDirectoryW

Win32::API->Import(
    Kernel32 => qq{BOOL CreateDirectoryW(LPWSTR lpPathNameW,void *p)}
);

您需要为CreateDirectoryW编码$path:

#!/usr/bin/perl

use Strict; use warnings;
use utf8;

use Encode qw( encode );
use Win32::API;

Win32::API->Import(
    Kernel32 => qq{BOOL CreateDirectoryW(LPWSTR lpPathNameW,void *p)}
);

binmode STDOUT,':utf8';
binmode STDERR,':utf8';

my $dir_name = 'Волгогра́д';

my $ucs_path = encode('UCS-2le',"$dir_name\0");
CreateDirectoryW($ucs_path,undef)
    or die "Failed to create directory: '$dir_name': $^E";
E:\> dir
2010/02/02  01:05 PM              волгогра́д
2010/02/02  01:04 PM              москва

大佬总结

以上是大佬教程为你收集整理的如何使用Perl在Windows上创建Unicode目录?全部内容,希望文章能够帮你解决如何使用Perl在Windows上创建Unicode目录?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。