http://www.perlmonks.org?node_id=988910


in reply to Re: remove files from the V volume on windows
in thread remove files from the V volume on windows server 2008

Error: The Free Size is : 2.5 GB failed on ..: The system cannot find the file specified Use of uninitialized value in numeric gt (>) at diskspace.pl line 24.
  • Comment on Re^2: remove files from the V volume on windows

Replies are listed 'Best First'.
Re^3: remove files from the V volume on windows
by BrowserUk (Patriarch) on Aug 22, 2012 at 00:58 UTC

    So, basically the file you are trying to delete does not exist. Why do you think that is? (Hint: what do you see when you print $file within the loop?)

    Your problem is that readdir returns the names of the files; not their full paths, so what your code is trying to do is delete a filename read from a path on your V: drive, from your current directory.

    You need to combine the name returned from readdir, with the path you gave to opendir to get a full pathname.

    Something like this might work:

    ... foreach $file (readdir DH){ my $path = "$dir_to_process/$file"; unlink $path or warn "failed on $path: $!\n" if -M $path > 14; }

    And for future reference, investigate glob which makes doing this sort of thing much easier.


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

    The start of some sanity?