Windows file functions that use very long paths and Unicode.
README for Win32::LongPath PREREQUISITES ============= This module was developed for the Windows environment. It was tested in WinXP and Win7 (64-bit) but should work in anything from WinXP to Win8. It was not designed for non-native environments (i.e. Cygwin) and probably would not work there. It was developed in ActivePerl 5.16 but should work with Perl 5.8.0 or later. Install a C compiler. It has been successfully compiled using MinGW 4.6.2, MinGW64 4.5.4 or Visual C++ 2010 Express. Please note the following: 1. It is best to use the same compiler that was used to compile Perl itself. 2. MinGW 3.4.5 created a DLL that did not work in the WinXP environment. 3. MinGW 4.6.2 required the following change to the Makefile. OTHERLDFLAGS = -static-libgcc -static-libstdc++ INSTALLATION ============ Make the source code directory the current directory and type the following commands to create the module, test it and install it. NOTE: Use dmake instead of nmake if you are using MinGW. perl Makefile.PL nmake nmake test nmake install The test code will do the following: 1. Create a very long path in the source directory that includes Unicode names. If the path already exists a warning will be displayed. 2. Create a Unicode file in that directory. 3. Copy and rename the file. 4. If the file system, operating system and user privileges support it, it will create a hard link, relative symbolic link to a directory, and a fullpath symbolic link to a file. A diagnostic message will be printed if these conditions are not met. NOTE: Symbolic links require Administrator privileges. 5. Change the read, hidden, system and FANCI attributes of file. A diagnostic message will be displayed if the FANCI attribute is not supported and it will not test this feature. 6. The file access and modification times will be changed to 24 hours earlier and will be tested for that time. Since some file systems do not have 1-second resolution (i.e. FAT) a diagnostic warning will be displayed if the access time is not the same and less than a day or the modification time is not the same and is less than 2 seconds. 7. The contents of the directory will be examined using the opendirL function. 8. The files and created path will be removed. NOTE: If the process fails it may leave the long path and files behind. Most likely Windows Explorer will not be able to remove it due to its length.