Changeset 32844
- Timestamp:
- 2019-03-04T13:33:09+13:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone2/perllib/util.pm
r32791 r32844 863 863 # Ensure any DOS-like filename, such as test~1.txt, has been upgraded 864 864 # to its long (Windows) version 865 my $long_filename = Win32::GetLongPathName($filename_full_path); 866 if (defined $long_filename) { 865 # GetLongPathName doesn't work if the file doesn't exist - in this case, use the directory instead 866 867 if (-e $filename_full_path) { 868 my $long_filename = Win32::GetLongPathName($filename_full_path); 869 if (defined $long_filename) { 867 870 868 871 $filename_full_path = $long_filename; 869 872 } 873 } else { 874 875 my ($tailname, $dirname, $suffix) 876 = &File::Basename::fileparse($filename_full_path, "\\.[^\\.]+\$"); 877 my $long_dirname = Win32::GetLongPathName($dirname); 878 if (defined $long_dirname) { 879 $filename_full_path = &FileUtils::filenameConcatenate($long_dirname, "$tailname$suffix"); 880 } 881 } 882 870 883 # Make sure initial drive letter is lower-case (to fit in with rest of Greenstone) 871 884 $filename_full_path =~ s/^(.):/\u$1:/; … … 889 902 # Ensure the given long Windows filename is in a form that can 890 903 # be opened by Perl => convert it to a short DOS-like filename 891 904 # GetShortPathName doesn't work if the file doesn't exist - in this case, use the directory instead 905 if (-e $filename_full_path) { 892 906 my $short_filename = Win32::GetShortPathName($filename_full_path); 893 907 if (defined $short_filename) { 894 908 $filename_full_path = $short_filename; 909 } 910 } else { 911 my ($tailname, $dirname, $suffix) 912 = &File::Basename::fileparse($filename_full_path, "\\.[^\\.]+\$"); 913 my $short_dirname = Win32::GetShortPathName($dirname); 914 if (defined $short_dirname) { 915 $filename_full_path = &FileUtils::filenameConcatenate($short_dirname, "$tailname$suffix"); 916 } 917 895 918 } 896 919 # Make sure initial drive letter is lower-case (to fit in
Note:
See TracChangeset
for help on using the changeset viewer.