GDCM 2.2.0

- Main Page
- Related Pages
- Namespaces
- Classes
- Files
- Directories
- Examples

ReadFiles.java

    /*=========================================================================

      Program: GDCM (Grassroots DICOM). A DICOM library

      Copyright (c) 2006-2011 Mathieu Malaterre
      All rights reserved.
      See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.

         This software is distributed WITHOUT ANY WARRANTY; without even
         the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
         PURPOSE.  See the above copyright notice for more information.

    =========================================================================*/
    import gdcm.*;
    import java.io.File;

    public class ReadFiles
    {
      static int i = 0;
      public static void process(String path)
        {
        //String path = file.getPath();
        assert PosixEmulation.FileExists(path) : "Problem converting to 8bits";

        System.out.println("Reading: " + path );
        System.out.println("File: " + i++);
        Reader r = new Reader();
        try
          {
          r.SetFileName( path );
          TagSetType skip = new TagSetType();
          skip.insert( new Tag(0x7fe0,0x10) );
          boolean b = r.ReadUpToTag( new Tag(0x88,0x200), skip );
          //System.out.println("DS:\n" + r.GetFile().GetDataSet().toString() );
          }
        finally
          {
          r.delete(); // will properly call C++ destructor and close file descriptor
          }
        }

      // Process only files under dir
      public static void visitAllFiles(File dir)
        {
        if (dir.isDirectory())
          {
          String[] children = dir.list();
          for (int i=0; i<children.length; i++)
            {
            visitAllFiles(new File(dir, children[i]));
            }
          }
        else
          {
          process(dir.getPath());
          }
        }

      public static void waiting (int n)
        {
        long t0, t1;
        t0 =  System.currentTimeMillis();
        do
          {
          t1 = System.currentTimeMillis();
          }
        while ((t1 - t0) < (n * 1000));
        }

      public static void main(String[] args) throws Exception
        {
        String directory = args[0];

        Directory gdir = new Directory();
        long n = gdir.Load( directory, true );
        System.out.println( gdir.toString() );
        FilenamesType files = gdir.GetFilenames();
        for( long i = 0; i < n; ++i )
          {
          String path = files.get( (int)i );
          process( path );
          }

        System.out.println( "Java API" );

        //waiting( 10 );
        for( int i = 0; i < 2; ++i )
          {
          File dir = new File(directory);
          visitAllFiles(dir);
          }
        }
    }