Package org.jaudiotagger.test

Source Code of org.jaudiotagger.test.TestAudioTagger

/**
* @author : Paul Taylor
* <p/>
* Version @version:$Id: TestAudioTagger.java 832 2009-11-12 13:25:38Z paultaylor $
* <p/>
* Jaudiotagger Copyright (C)2004,2005
* <p/>
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser
* General Public  License as published by the Free Software Foundation; either version 2.1 of the License,
* or (at your option) any later version.
* <p/>
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
* <p/>
* You should have received a copy of the GNU Lesser General Public License along with this library; if not,
* you can get a copy from http://www.opensource.org/licenses/lgpl-license.php or write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* <p/>
* Description:
*/
package org.jaudiotagger.test;

import org.jaudiotagger.audio.AudioFileFilter;
import org.jaudiotagger.audio.AudioFileIO;

import java.io.File;
import java.text.DateFormat;
import java.util.Date;

/**
* Simple class that will attempt to recusively read all files within a directory, flags
* errors that occur.
*/
public class TestAudioTagger {

    public static void main(final String[] args) {
        TestAudioTagger test = new TestAudioTagger();

        if (args.length == 0) {
            System.err.println("usage TestAudioTagger Dirname");
            System.err.println("      You must enter the root directory");
            System.exit(1);
        } else if (args.length > 1) {
            System.err.println("usage TestAudioTagger Dirname");
            System.err.println("      Only one parameter accepted");
            System.exit(1);
        }
        File rootDir = new File(args[0]);
        if (!rootDir.isDirectory()) {
            System.err.println("usage TestAudioTagger Dirname");
            System.err.println("      Directory " + args[0] + " could not be found");
            System.exit(1);
        }
        Date start = new Date();
        System.out.println("Started to read from:" + rootDir.getPath() + " at " + DateFormat.getTimeInstance().format(start));
        test.scanSingleDir(rootDir);
        Date finish = new Date();
        System.out.println("Started to read from:" + rootDir.getPath() + " at " + DateFormat.getTimeInstance().format(start));
        System.out.println("Finished to read from:" + rootDir.getPath() + DateFormat.getTimeInstance().format(finish));
        System.out.println("Attempted  to read:" + count);
        System.out.println("Successful to read:" + (count - failed));
        System.out.println("Failed     to read:" + failed);

    }


    private static int count = 0;
    private static int failed = 0;

    /**
     * Recursive function to scan directory
     *
     * @param dir
     */
    private void scanSingleDir(final File dir) {

        final File[] audioFiles = dir.listFiles(new AudioFileFilter(false));
        if (audioFiles.length > 0) {
            for (File audioFile : audioFiles) {
                count++;
                try {
                    AudioFileIO.read(audioFile);
                } catch (Throwable t) {
                    System.err.println("Unable to read record:" + count + ":" + audioFile.getPath());
                    failed++;
                    t.printStackTrace();
                }
            }
        }

        final File[] audioFileDirs = dir.listFiles(new DirFilter());
        if (audioFileDirs.length > 0) {
            for (File audioFileDir : audioFileDirs) {
                scanSingleDir(audioFileDir);
            }
        }
    }


    public final class DirFilter implements java.io.FileFilter {
        public DirFilter() {

        }


        /**
         * Determines whether or not the file is an mp3 file.  If the file is
         * a directory, whether or not is accepted depends upon the
         * allowDirectories flag passed to the constructor.
         *
         * @param file the file to test
         * @return true if this file or directory should be accepted
         */
        public final boolean accept(final java.io.File file) {
            return file.isDirectory();
        }

        public static final String IDENT = "$Id: TestAudioTagger.java 832 2009-11-12 13:25:38Z paultaylor $";
    }
}
TOP

Related Classes of org.jaudiotagger.test.TestAudioTagger

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.