Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re^3: delete old files (windoze)

by kutsu (Priest)
on Oct 15, 2004 at 14:57 UTC ( [id://399522]=note: print w/replies, xml ) Need Help??

in reply to Re^2: delete old files (windoze)
in thread delete old files (windoze)

If you were in the TEMP directory and did a dir /s /p and found nothing...TEMP is empty, it has nothing to do with spaces in the filename. I would guess this works on your local machine because you don't clean out the TEMP directory, on a server (even a test server) this proably isn't the case and your files are getting deleted, which is one of the many reasons you shouldn't put non-temporary files in a temp directory. However, if you don't even understand the basic function dir (like how to find files with spaces in their names), I suggest you take some time and learn about your OS.

"Cogito cogito ergo cogito sum - I think that I think, therefore I think that I am." Ambrose Bierce

Replies are listed 'Best First'.
Re^4: delete old files (windoze)
by softworkz (Monk) on Oct 22, 2004 at 12:01 UTC
    I guess I should have been MORE informative about my OS. Here's what I have. I have windoze 2003 ent and the hard drive is partitioned C:\ and T:\temp. I run Perl on both a 32bit and 64bit windoze servers.

    Now back to the problem at hand. Run this code if you have your hard drive partitioned and you will see it fail then get back with me with suggestions.
    #!/usr/bin/perl -w use strict; use File::Find; use File::stat; my $path = "T:\\"; find (\&wanted, $path); sub wanted { my $days = 10; my $stat = stat($_); # Access and Modified dates older then X days and not root if (-A $_ > $days && -M $_ > $days && !(/^\./) ){ # With a temp partition T:\ there are system files that can't +be deleted if (!($_ =~ /^ntldr.*|nprotect.*|ntdetect.*|System.*|VIRTPART. +*|.ini/i)) { printf "access date %s modify date %s File is %s\n", scala +r localtime $stat->atime, scalar localtime $stat->mtime, $_; # unlink($_); } } }

      I don't have a windows machine available, but I doubt it's because of the network drive (having done some copying, renaming, and deleteing on windows network drives). I would suggest you use a debugger and print $_ at the start of the while loop to ensure that the files found by File::Find match the files actually in the directory.

      "Cogito cogito ergo cogito sum - I think that I think, therefore I think that I am." Ambrose Bierce

Re^4: delete old files (windoze)
by softworkz (Monk) on Dec 09, 2004 at 13:52 UTC
    I think I've found the problem, the temp directory is a partition of the c:\ and File::Find is finding the directory System Volume Information which is a hidden folder on c:\, is there any way to make it not find it? thanks!

      You should proably start ask this question in a new thread, with a link to this thread, as many people might not look this far in the thread to see your new question. I don't know if there is a way to have File::Find skip hidden folder, don't acutally use it that much.

      "Cogito cogito ergo cogito sum - I think that I think, therefore I think that I am." Ambrose Bierce

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://399522]
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others avoiding work at the Monastery: (5)
As of 2024-07-22 11:51 GMT
Find Nodes?
    Voting Booth?

    No recent polls found

    erzuuli‥ 🛈The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.