Mercurial > projects > dwt2
diff java/src/java/io/File.d @ 21:9b96950f2c3c
the 'java' tree compiles on both D1-Tango and D2-Phobos
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Thu, 19 Mar 2009 20:38:55 +0100 |
parents | 6dd524f61e62 |
children |
line wrap: on
line diff
--- a/java/src/java/io/File.d Wed Mar 18 12:10:17 2009 +0100 +++ b/java/src/java/io/File.d Thu Mar 19 20:38:55 2009 +0100 @@ -5,10 +5,15 @@ import java.lang.all; -static import tango.io.model.IFile; -static import tango.io.FilePath; -static import tango.io.Path; -static import tango.io.FileSystem; +version(Tango){ + static import tango.io.model.IFile; + static import tango.io.FilePath; + static import tango.io.Path; + static import tango.io.FileSystem; +} else { // Phobos + static import std.file; + static import std.path; +} public class File { @@ -17,25 +22,55 @@ public static char pathSeparatorChar; public static String pathSeparator; - private tango.io.FilePath.FilePath mFilePath; + private String mFilePath; static this(){ - separator = tango.io.model.IFile.FileConst.PathSeparatorString; - separatorChar = tango.io.model.IFile.FileConst.PathSeparatorChar; - pathSeparator = tango.io.model.IFile.FileConst.SystemPathString; - pathSeparatorChar = tango.io.model.IFile.FileConst.SystemPathChar; + version(Tango){ + separator = tango.io.model.IFile.FileConst.PathSeparatorString; + separatorChar = tango.io.model.IFile.FileConst.PathSeparatorChar; + pathSeparator = tango.io.model.IFile.FileConst.SystemPathString; + pathSeparatorChar = tango.io.model.IFile.FileConst.SystemPathChar; + } else { // Phobos + version(Windows){ + separator = "\\"; + separatorChar = '\\'; + pathSeparator = ";"; + pathSeparatorChar = ';'; + } + else{ + separator = "/"; + separatorChar = '/'; + pathSeparator = ":"; + pathSeparatorChar = ':'; + } + } + } + + private static String toStd( String path ){ + version(Tango){ + return tango.io.Path.standard( path ); + } else { // Phobos + return path; + } + } + private static String join( String path, String file ){ + version(Tango){ + return tango.io.Path.join( path, file ); + } else { // Phobos + return std.path.join( path, file ); + } } public this ( String pathname ){ - mFilePath = new tango.io.FilePath.FilePath( tango.io.Path.standard( pathname )); + mFilePath = toStd( pathname ); } public this ( String parent, String child ){ - mFilePath = new tango.io.FilePath.FilePath( tango.io.FilePath.FilePath.join( parent, child ) ); + mFilePath = join( toStd(parent), toStd(child) ); } public this ( java.io.File.File parent, String child ){ - mFilePath = new tango.io.FilePath.FilePath( tango.io.FilePath.FilePath.join( parent.mFilePath.toString, child ) ); + mFilePath = join( parent.mFilePath, toStd(child) ); } public int getPrefixLength(){ @@ -69,11 +104,21 @@ } public String getAbsolutePath(){ - return tango.io.FileSystem.FileSystem.toAbsolute( mFilePath ).toString; + version(Tango){ + return tango.io.FileSystem.FileSystem.toAbsolute( mFilePath ); + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return ""; + } } public java.io.File.File getAbsoluteFile(){ - return new File( getAbsolutePath() ); + version(Tango){ + return new File( getAbsolutePath() ); + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return null; + } } public String getCanonicalPath(){ @@ -92,15 +137,30 @@ } public bool canWrite(){ - return mFilePath.isWritable; + version(Tango){ + return tango.io.Path.isWritable(mFilePath); + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return false; + } } public bool exists(){ - return mFilePath.exists; + version(Tango){ + return tango.io.Path.exists(mFilePath); + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return false; + } } public bool isDirectory(){ - return mFilePath.isFolder; + version(Tango){ + return tango.io.Path.isFolder(mFilePath); + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return false; + } } public bool isFile(){