You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sa...@apache.org on 2002/01/28 05:44:49 UTC
cvs commit: jakarta-commons-sandbox/io/src/test/org/apache/commons/io test.txt IOTestCase.java
sanders 02/01/27 20:44:49
Modified: io build.xml
io/src/java/org/apache/commons/io FileUtils.java
io/src/test/org/apache/commons/io IOTestCase.java
Added: io/src/test/org/apache/commons/io test.txt
Log:
Updated build file.
Sniped from alexandria's FileUtils.
Added FileUtils test case.
Revision Changes Path
1.2 +2 -2 jakarta-commons-sandbox/io/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/io/build.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- build.xml 25 Jan 2002 19:06:14 -0000 1.1
+++ build.xml 28 Jan 2002 04:44:49 -0000 1.2
@@ -3,7 +3,7 @@
<!--
"IO" component of the Jakarta Commons Subproject
- $Id: build.xml,v 1.1 2002/01/25 19:06:14 sanders Exp $
+ $Id: build.xml,v 1.2 2002/01/28 04:44:49 sanders Exp $
-->
@@ -233,7 +233,7 @@
<echo message="Running IO tests ..."/>
<java classname="${test.runner}" fork="yes"
failonerror="${test.failonerror}">
- <arg value="org.apache.commons.io.TestIO"/>
+ <arg value="org.apache.commons.io.IOTestCase"/>
<classpath refid="test.classpath"/>
</java>
</target>
1.2 +107 -3 jakarta-commons-sandbox/io/src/java/org/apache/commons/io/FileUtils.java
Index: FileUtils.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/io/src/java/org/apache/commons/io/FileUtils.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- FileUtils.java 26 Jan 2002 02:47:42 -0000 1.1
+++ FileUtils.java 28 Jan 2002 04:44:49 -0000 1.2
@@ -57,16 +57,19 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
+import java.util.Vector;
/**
* Common {@link java.io.File} manipulation routines.
*
* Taken from the commons-utils repo.
+ * Also code from alexandria's FileUtils.
*
+ * @author <a href="mailto:burton@relativity.yi.org">Kevin A. Burton</A>
* @author <a href="mailto:sanders@apache.org">Scott Sanders</a>
* @author <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a>
* @author <a href="mailto:Christoph.Reck@dlr.de">Christoph.Reck</a>
- * @version $Id: FileUtils.java,v 1.1 2002/01/26 02:47:42 sanders Exp $
+ * @version $Id: FileUtils.java,v 1.2 2002/01/28 04:44:49 sanders Exp $
*/
public class FileUtils
{
@@ -173,7 +176,7 @@
/**
* Returns the extension portion of a file specification string.
- * This everything after the last dot '.' in the filename (including
+ * This everything after the last dot '.' in the filename (NOT including
* the dot).
*/
public static String extension(String filename)
@@ -182,7 +185,7 @@
if (lastDot >= 0)
{
- return filename.substring(lastDot);
+ return filename.substring(lastDot + 1);
}
else
{
@@ -297,4 +300,105 @@
{
return new File(fileName);
}
+
+ /**
+ * Given a directory and an array of extensions... return an array of
+ * compliant files.
+ *
+ * TODO Should an ignore list be passed in?
+ * TODO Should a recurse flag be passed in?
+ *
+ * The given extensions should be like "java" and not like ".java"
+ */
+ public static String[] getFilesFromExtension(String directory, String[] extensions) {
+
+ Vector files = new Vector();
+
+ java.io.File currentDir = new java.io.File(directory);
+
+ String[] unknownFiles = currentDir.list();
+
+ if (unknownFiles == null) {
+ return new String[0];
+ }
+
+ for (int i = 0;i < unknownFiles.length;++i) {
+ String currentFileName = directory + System.getProperty("file.separator") + unknownFiles[i];
+ java.io.File currentFile = new java.io.File(currentFileName);
+
+ if (currentFile.isDirectory()) {
+
+
+ //ignore all CVS directories...
+ if ( currentFile.getName().equals("CVS") ) {
+ continue;
+ }
+
+
+ //ok... transverse into this directory and get all the files... then combine
+ //them with the current list.
+
+ String[] fetchFiles = getFilesFromExtension(currentFileName, extensions);
+ files = blendFilesToVector( files, fetchFiles);
+
+ } else {
+ //ok... add the file
+
+ String add = currentFile.getAbsolutePath();
+ if ( isValidFile( add, extensions ) ) {
+ files.addElement( add );
+
+ }
+
+ }
+ }
+
+ //ok... move the Vector into the files list...
+
+ String[] foundFiles = new String[files.size()];
+ files.copyInto(foundFiles);
+
+ return foundFiles;
+
+ }
+
+
+ /**
+ * Private hepler method for getFilesFromExtension()
+ */
+ private static Vector blendFilesToVector(Vector v, String[] files) {
+
+ for (int i = 0; i < files.length; ++i) {
+ v.addElement(files[i]);
+ }
+
+ return v;
+ }
+
+ /**
+ * Checks to see if a file is of a particular type(s).
+ * Note that if the file does not have an extension, an empty string
+ * ("") is matched for.
+ *
+ */
+ private static boolean isValidFile(String file, String[] extensions) {
+
+
+ String extension = FileUtils.extension(file);
+ if (extension == null) {
+ extension = "";
+ }
+
+ //ok.. now that we have the "extension" go through the current know
+ //excepted extensions and determine if this one is OK.
+
+ for (int i = 0; i < extensions.length; ++i) {
+ if (extensions[i].equals(extension))
+ return true;
+ }
+
+ return false;
+
+ }
+
}
1.2 +28 -7 jakarta-commons-sandbox/io/src/test/org/apache/commons/io/IOTestCase.java
Index: IOTestCase.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/io/src/test/org/apache/commons/io/IOTestCase.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- IOTestCase.java 26 Jan 2002 02:47:42 -0000 1.1
+++ IOTestCase.java 28 Jan 2002 04:44:49 -0000 1.2
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-commons-sandbox/io/src/test/org/apache/commons/io/IOTestCase.java,v 1.1 2002/01/26 02:47:42 sanders Exp $
- * $Revision: 1.1 $
- * $Date: 2002/01/26 02:47:42 $
+ * $Header: /home/cvs/jakarta-commons-sandbox/io/src/test/org/apache/commons/io/IOTestCase.java,v 1.2 2002/01/28 04:44:49 sanders Exp $
+ * $Revision: 1.2 $
+ * $Date: 2002/01/28 04:44:49 $
*
* ====================================================================
*
@@ -78,7 +78,7 @@
* </p>
*
* @author <a href="mailto:sanders@apache.org">Scott Sanders</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class IOTestCase extends TestCase {
@@ -115,10 +115,31 @@
/**
- * tests the string and int arrays of TestBean
+ *
*/
- public void testSomething() {
-
+ public void testFileUtils() {
+ String filename = "src/test/org/apache/commons/io/test.txt";
+ String filename2 = "src/test/org/apache/commons/io/test2.txt";
+ assertTrue("test.txt extension == \"txt\"", FileUtils.extension(filename).equals("txt"));
+ assertTrue("Test file exists", FileUtils.fileExists(filename));
+ assertTrue("Second test file does not exist", !FileUtils.fileExists(filename2));
+ try {
+ FileUtils.fileWrite(filename2, filename);
+ assertTrue("Second file was written", FileUtils.fileExists(filename2));
+ String file2contents = FileUtils.fileRead(filename2);
+ assertTrue("Second file's contents correct", FileUtils.fileRead(filename2).equals(file2contents));
+ FileUtils.fileDelete(filename2);
+ assertTrue("Second test file does not exist", !FileUtils.fileExists(filename2));
+ } catch (Exception e) {
+ fail("Error reading or writing second test file: " + filename);
+ }
+
+ try {
+ String contents = FileUtils.fileRead(filename);
+ assertTrue("FileUtils.fileRead()", contents.equals("This is a test"));
+ } catch (Exception e) {
+ fail("Error loading file: " + filename);
+ }
}
1.1 jakarta-commons-sandbox/io/src/test/org/apache/commons/io/test.txt
Index: test.txt
===================================================================
This is a test
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>