GDCM
2.2.3
|
/*========================================================================= 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); } } }