以下是类File的原文件!
文件夹的操作和文件应该是一样的!
有些属性只能设置,而不能去掉!
象只能设置setReadOnly(),而不能去掉!
// Source File Name: File.javapackage java.io;import java.net.MalformedURLException;
import java.net.URL;
import java.security.AccessControlException;
import java.security.AccessController;
import java.util.ArrayList;
import java.util.Random;
import sun.security.action.GetPropertyAction;// Referenced classes of package java.io:
// Serializable, IOException, FileSystem, FilenameFilter,
// FileFilter, ObjectOutputStream, ObjectInputStreampublic class File
implements Serializable, Comparable
{ int getPrefixLength()
{
return prefixLength;
} private File(String s, int i)
{
path = s;
prefixLength = i;
} public File(String s)
{
if(s == null)
{
throw new NullPointerException();
} else
{
path = fs.normalize(s);
prefixLength = fs.prefixLength(path);
return;
}
} public File(String s, String s1)
{
if(s1 == null)
throw new NullPointerException();
if(s != null)
{
if(s.equals(""))
path = fs.resolve(fs.getDefaultParent(), fs.normalize(s1));
else
path = fs.resolve(fs.normalize(s), fs.normalize(s1));
} else
{
path = fs.normalize(s1);
}
prefixLength = fs.prefixLength(path);
} public File(File file, String s)
{
if(s == null)
throw new NullPointerException();
if(file != null)
{
if(file.path.equals(""))
path = fs.resolve(fs.getDefaultParent(), fs.normalize(s));
else
path = fs.resolve(file.path, fs.normalize(s));
} else
{
path = fs.normalize(s);
}
prefixLength = fs.prefixLength(path);
} public String getName()
{
int i = path.lastIndexOf(separatorChar);
if(i < prefixLength)
return path.substring(prefixLength);
else
return path.substring(i + 1);
} public String getParent()
{
int i = path.lastIndexOf(separatorChar);
if(i < prefixLength)
{
if(prefixLength > 0 && path.length() > prefixLength)
return path.substring(0, prefixLength);
else
return null;
} else
{
return path.substring(0, i);
}
}
文件夹的操作和文件应该是一样的!
有些属性只能设置,而不能去掉!
象只能设置setReadOnly(),而不能去掉!
// Source File Name: File.javapackage java.io;import java.net.MalformedURLException;
import java.net.URL;
import java.security.AccessControlException;
import java.security.AccessController;
import java.util.ArrayList;
import java.util.Random;
import sun.security.action.GetPropertyAction;// Referenced classes of package java.io:
// Serializable, IOException, FileSystem, FilenameFilter,
// FileFilter, ObjectOutputStream, ObjectInputStreampublic class File
implements Serializable, Comparable
{ int getPrefixLength()
{
return prefixLength;
} private File(String s, int i)
{
path = s;
prefixLength = i;
} public File(String s)
{
if(s == null)
{
throw new NullPointerException();
} else
{
path = fs.normalize(s);
prefixLength = fs.prefixLength(path);
return;
}
} public File(String s, String s1)
{
if(s1 == null)
throw new NullPointerException();
if(s != null)
{
if(s.equals(""))
path = fs.resolve(fs.getDefaultParent(), fs.normalize(s1));
else
path = fs.resolve(fs.normalize(s), fs.normalize(s1));
} else
{
path = fs.normalize(s1);
}
prefixLength = fs.prefixLength(path);
} public File(File file, String s)
{
if(s == null)
throw new NullPointerException();
if(file != null)
{
if(file.path.equals(""))
path = fs.resolve(fs.getDefaultParent(), fs.normalize(s));
else
path = fs.resolve(file.path, fs.normalize(s));
} else
{
path = fs.normalize(s);
}
prefixLength = fs.prefixLength(path);
} public String getName()
{
int i = path.lastIndexOf(separatorChar);
if(i < prefixLength)
return path.substring(prefixLength);
else
return path.substring(i + 1);
} public String getParent()
{
int i = path.lastIndexOf(separatorChar);
if(i < prefixLength)
{
if(prefixLength > 0 && path.length() > prefixLength)
return path.substring(0, prefixLength);
else
return null;
} else
{
return path.substring(0, i);
}
}
解决方案 »
- 我用httpclient包,模拟发送post请求,已经可以了,但是遇到一种比较特殊的post请求,求解
- 多个变量传值 ,求返回值怎么写
- 请问大家一下java如何修改windows或者linux的系统时间
- java题:过滤字符串
- ajax 问题希望高手来
- 把一个比较大的源文件,分块读取之后,然后再分块写入目标文件,为什么写入后的目标文件与源文件不同?
- 笨笨的问题:怎么知道自己的程序需要那些包?
- (200分)为什么我用wizards->native excutable builder把application打包成.exe文件,有时能成功?有时不能成功?(急等!)
- 请问如何使用Web Start ?
- 新年送分了
- 急煞我也,java环境配置这次怎么错了?
- 那里有免费jrun下载,在线等
{
String s = getParent();
if(s == null)
return null;
else
return new File(s, prefixLength);
} public String getPath()
{
return path;
} public boolean isAbsolute()
{
return fs.isAbsolute(this);
} public String getAbsolutePath()
{
return fs.resolve(this);
} public File getAbsoluteFile()
{
return new File(getAbsolutePath());
} public String getCanonicalPath()
throws IOException
{
return fs.canonicalize(fs.resolve(this));
} public File getCanonicalFile()
throws IOException
{
return new File(getCanonicalPath());
} public URL toURL()
throws MalformedURLException
{
String s = getAbsolutePath();
if(separatorChar != '/')
s = s.replace(separatorChar, '/');
if(!s.startsWith("/"))
s = "/" + s;
if(!s.endsWith("/") && isDirectory())
s = s + "/";
return new URL("file", "", s);
} public boolean canRead()
{
SecurityManager securitymanager = System.getSecurityManager();
if(securitymanager != null)
securitymanager.checkRead(path);
return fs.checkAccess(this, false);
} public boolean canWrite()
{
SecurityManager securitymanager = System.getSecurityManager();
if(securitymanager != null)
securitymanager.checkWrite(path);
return fs.checkAccess(this, true);
} public boolean exists()
{
SecurityManager securitymanager = System.getSecurityManager();
if(securitymanager != null)
securitymanager.checkRead(path);
return (fs.getBooleanAttributes(this) & 0x1) != 0;
} public boolean isDirectory()
{
SecurityManager securitymanager = System.getSecurityManager();
if(securitymanager != null)
securitymanager.checkRead(path);
return (fs.getBooleanAttributes(this) & 0x4) != 0;
} public boolean isFile()
{
SecurityManager securitymanager = System.getSecurityManager();
if(securitymanager != null)
securitymanager.checkRead(path);
return (fs.getBooleanAttributes(this) & 0x2) != 0;
} public boolean isHidden()
{
SecurityManager securitymanager = System.getSecurityManager();
if(securitymanager != null)
securitymanager.checkRead(path);
return (fs.getBooleanAttributes(this) & 0x8) != 0;
} public long lastModified()
{
SecurityManager securitymanager = System.getSecurityManager();
if(securitymanager != null)
securitymanager.checkRead(path);
return fs.getLastModifiedTime(this);
} public long length()
{
SecurityManager securitymanager = System.getSecurityManager();
if(securitymanager != null)
securitymanager.checkRead(path);
return fs.getLength(this);
} public boolean createNewFile()
throws IOException
{
SecurityManager securitymanager = System.getSecurityManager();
if(securitymanager != null)
securitymanager.checkWrite(path);
return fs.createFileExclusively(path);
} public boolean delete()
{
SecurityManager securitymanager = System.getSecurityManager();
if(securitymanager != null)
securitymanager.checkDelete(path);
return fs.delete(this);
} public void deleteOnExit()
{
SecurityManager securitymanager = System.getSecurityManager();
if(securitymanager != null)
securitymanager.checkDelete(path);
fs.deleteOnExit(this);
} public String[] list()
{
SecurityManager securitymanager = System.getSecurityManager();
if(securitymanager != null)
securitymanager.checkRead(path);
return fs.list(this);
} public String[] list(FilenameFilter filenamefilter)
{
String as[] = list();
if(as == null || filenamefilter == null)
return as;
ArrayList arraylist = new ArrayList();
for(int i = 0; i < as.length; i++)
if(filenamefilter.accept(this, as[i]))
arraylist.add(as[i]); return (String[])arraylist.toArray(new String[0]);
} public File[] listFiles()
{
String as[] = list();
if(as == null)
return null;
int i = as.length;
File afile[] = new File[i];
for(int j = 0; j < i; j++)
afile[j] = new File(path, as[j]); return afile;
} public File[] listFiles(FilenameFilter filenamefilter)
{
String as[] = list();
if(as == null)
return null;
ArrayList arraylist = new ArrayList();
for(int i = 0; i < as.length; i++)
if(filenamefilter == null || filenamefilter.accept(this, as[i]))
arraylist.add(new File(path, as[i])); return (File[])arraylist.toArray(new File[0]);
} public File[] listFiles(FileFilter filefilter)
{
String as[] = list();
if(as == null)
return null;
ArrayList arraylist = new ArrayList();
for(int i = 0; i < as.length; i++)
{
File file = new File(path, as[i]);
if(filefilter == null || filefilter.accept(file))
arraylist.add(file);
} return (File[])arraylist.toArray(new File[0]);
}
{
SecurityManager securitymanager = System.getSecurityManager();
if(securitymanager != null)
securitymanager.checkWrite(path);
return fs.createDirectory(this);
} public boolean mkdirs()
{
if(exists())
return false;
if(mkdir())
{
return true;
} else
{
String s = getParent();
return s != null && (new File(s)).mkdirs() && mkdir();
}
} public boolean renameTo(File file)
{
SecurityManager securitymanager = System.getSecurityManager();
if(securitymanager != null)
{
securitymanager.checkWrite(path);
securitymanager.checkWrite(file.path);
}
return fs.rename(this, file);
} public boolean setLastModified(long l)
{
if(l < 0L)
throw new IllegalArgumentException("Negative time");
SecurityManager securitymanager = System.getSecurityManager();
if(securitymanager != null)
securitymanager.checkWrite(path);
return fs.setLastModifiedTime(this, l);
} public boolean setReadOnly()
{
SecurityManager securitymanager = System.getSecurityManager();
if(securitymanager != null)
securitymanager.checkWrite(path);
return fs.setReadOnly(this);
} public static File[] listRoots()
{
return fs.listRoots();
} private static File generateFile(String s, String s1, File file)
throws IOException
{
if(counter == -1)
counter = (new Random()).nextInt() & 0xffff;
counter++;
return new File(file, s + Integer.toString(counter) + s1);
} private static String getTempDir()
{
if(tmpdir == null)
{
GetPropertyAction getpropertyaction = new GetPropertyAction("java.io.tmpdir");
tmpdir = (String)AccessController.doPrivileged(getpropertyaction);
}
return tmpdir;
} private static boolean checkAndCreate(String s, SecurityManager securitymanager)
throws IOException
{
if(securitymanager != null)
try
{
securitymanager.checkWrite(s);
}
catch(AccessControlException accesscontrolexception)
{
throw new SecurityException("Unable to create temporary file");
}
return fs.createFileExclusively(s);
} public static File createTempFile(String s, String s1, File file)
throws IOException
{
if(s == null)
throw new NullPointerException();
if(s.length() < 3)
throw new IllegalArgumentException("Prefix string too short");
String s2 = s1 != null ? s1 : ".tmp";
File file2;
synchronized(tmpFileLock)
{
if(file == null)
file = new File(getTempDir());
SecurityManager securitymanager = System.getSecurityManager();
File file1;
do
file1 = generateFile(s, s2, file);
while(!checkAndCreate(file1.getPath(), securitymanager));
file2 = file1;
}
return file2;
} public static File createTempFile(String s, String s1)
throws IOException
{
return createTempFile(s, s1, null);
} public int compareTo(File file)
{
return fs.compare(this, file);
} public int compareTo(Object obj)
{
return compareTo((File)obj);
} public boolean equals(Object obj)
{
if(obj != null && (obj instanceof File))
return compareTo((File)obj) == 0;
else
return false;
} public int hashCode()
{
return fs.hashCode(this);
} public String toString()
{
return getPath();
} private synchronized void writeObject(ObjectOutputStream objectoutputstream)
throws IOException
{
objectoutputstream.defaultWriteObject();
objectoutputstream.writeChar(separatorChar);
} private synchronized void readObject(ObjectInputStream objectinputstream)
throws IOException, ClassNotFoundException
{
objectinputstream.defaultReadObject();
char c = objectinputstream.readChar();
if(c != separatorChar)
path = path.replace(c, separatorChar);
path = fs.normalize(path);
prefixLength = fs.prefixLength(path);
} private static FileSystem fs;
private String path;
private transient int prefixLength;
public static final char separatorChar;
public static final String separator;
public static final char pathSeparatorChar;
public static final String pathSeparator;
private static final Object tmpFileLock = new Object();
private static int counter = -1;
private static String tmpdir;
private static final long serialVersionUID = 0x42da4450e0de4ffL; static
{
fs = FileSystem.getFileSystem();
separatorChar = fs.getSeparator();
separator = "" + separatorChar;
pathSeparatorChar = fs.getPathSeparator();
pathSeparator = "" + pathSeparatorChar;
}
}
以上的内容接在一起!