http://qs1969.pair.com?node_id=1107048


in reply to Anyway to determine path being monitored with Win32::ChangeNotify?

Hello PhillyR,

With the ls utility from GnuWin tools you can use ls -i to get the inode of the monitored directory. If the user subsequently renames the directory, its inode number remains unchanged, allowing you to identify the directory and retrieve its new name.1 Here is some proof-of-concept code (minus error checking!):

#! perl use strict; use warnings; my $dir = 'foo'; my $ls = (grep { /\s+$dir$/ } `ls -il`)[0]; $ls =~ /^\s*(\d+)/; my $inode = $1; print "$dir --> $inode "; rename $dir, 'bar'; $ls = (grep { /^\s*$inode\s+/ } `ls -il`)[0]; $ls =~ /:\d{2}\s+(.*)$/; print "--> $1\n";

Output:

13:09 >perl 1076_SoPW.pl foo --> 7318349394599033 --> bar 13:09 >

(Tested on an NTFS file system under Windows 8.1, 64-bit.)

Hope that helps,

1See this discussion.

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,