Delete files in a directory

Discussion in 'Ruby' started by thehcdreamer@gmail.com, Nov 3, 2007.

  1. Guest

    Hello, this is my first post here, so first i would like to thanks all
    the people who works for this site.

    Well, i'm trying to set up a little script that should delete all the
    files in a given drectory; the system should work like this:
    -I have the name and the path of file = "/Users.....file1"
    -from file, i should get the directory (I've used File.dirname(file))
    -from that directory, i should delete all files and sub directories
    except from the given file (in this case, file1)

    I'm making confusion when i try to iterare on the files and irectory in
    that folder, and i'm scared to make test of deleting files in the system

    Oscar
    --
    Posted via http://www.ruby-forum.com/.
    , Nov 3, 2007
    #1
    1. Advertising

  2. Guest

    Note: parts of this message were removed by the gateway to make it a legal Usenet post.

    Alle sabato 3 novembre 2007, Oscar Del ben ha scritto:
    > Hello, this is my first post here, so first i would like to thanks all
    > the people who works for this site.
    >
    > Well, i'm trying to set up a little script that should delete all the
    > files in a given drectory; the system should work like this:
    > -I have the name and the path of file = "/Users.....file1"
    > -from file, i should get the directory (I've used File.dirname(file))
    > -from that directory, i should delete all files and sub directories
    > except from the given file (in this case, file1)
    >
    > I'm making confusion when i try to iterare on the files and irectory in
    > that folder, and i'm scared to make test of deleting files in the system
    >
    > Oscar


    If I understand correctly what you need to do, this should work.

    require 'fileutils'

    file_name = File.basename(file_path)
    dir = File.dirname(file_path)
    Dir.foreach(dir) do |f|
    if f == file_name or f == '.' or f == '..' then next
    elsif File.directory?(f) then FileUtils.rm_rf(f)
    else FileUtils.rm( f )
    end
    end

    To test the script, you can replace FileUtils.rm_rf(f) and FileUtils.rm(f) respectively with

    FileUtils.rm_rf( f, :noop => true, :verbose => true)

    and

    FileUtils.rm( f, :noop => true, :verbose => true)

    With those arguments, FileUtils.rm and FileUtils.rm_rf don't actually delete the files (or directories), but print the operation that would be performed on screen, so you can check whether everything works. For more information on this, look at the ri documentation for FileUtils and FileUtils.rm.

    I hope this helps

    Stefano
    , Nov 3, 2007
    #2
    1. Advertising

  3. Guest

    , Nov 4, 2007
    #3
  4. Guest

    require 'fileutils'

    def delete(filename)
    Dir["#{File.dirname(filename)}/*"].each do |file|
    next if File.basename(file) == File.basename(filename)
    FileUtils.rm_rf file, :noop => true, :verbose => true
    end
    end

    USAGE:

    delete 'path/to/file1'

    Bye.
    Andrea

    Il giorno sab, 03/11/2007 alle 19.39 +0900, Oscar Del ben ha scritto:
    > Hello, this is my first post here, so first i would like to thanks all
    > the people who works for this site.
    >
    > Well, i'm trying to set up a little script that should delete all the
    > files in a given drectory; the system should work like this:
    > -I have the name and the path of file = "/Users.....file1"
    > -from file, i should get the directory (I've used File.dirname(file))
    > -from that directory, i should delete all files and sub directories
    > except from the given file (in this case, file1)
    >
    > I'm making confusion when i try to iterare on the files and irectory in
    > that folder, and i'm scared to make test of deleting files in the system
    >
    > Oscar
    , Nov 5, 2007
    #4
  5. Guest

    , Nov 5, 2007
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. moon
    Replies:
    3
    Views:
    8,952
    Thomas Fritsch
    Sep 20, 2005
  2. Sonoman
    Replies:
    6
    Views:
    669
    Richard Herring
    Jul 1, 2004
  3. zhiwei wang

    How to delete files in a sub directory

    zhiwei wang, Oct 29, 2004, in forum: C Programming
    Replies:
    1
    Views:
    348
    Mike Wahler
    Oct 29, 2004
  4. codeboy
    Replies:
    1
    Views:
    1,550
    Juan T. Llibre
    Jun 8, 2009
  5. Gordon
    Replies:
    1
    Views:
    213
    nolo contendere
    Apr 14, 2008
Loading...

Share This Page