1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs.provider.local;
18
19 import org.apache.commons.vfs.FileName;
20 import org.apache.commons.vfs.FileObject;
21 import org.apache.commons.vfs.FileSelector;
22 import org.apache.commons.vfs.FileSystem;
23 import org.apache.commons.vfs.FileSystemException;
24 import org.apache.commons.vfs.FileSystemOptions;
25 import org.apache.commons.vfs.provider.AbstractFileSystem;
26
27 import java.io.File;
28 import java.io.FilePermission;
29 import java.util.Collection;
30
31 /***
32 * A local file system.
33 *
34 * @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
35 * @version $Revision: 480428 $ $Date: 2006-11-29 07:15:24 +0100 (Mi, 29 Nov 2006) $
36 */
37 public class LocalFileSystem
38 extends AbstractFileSystem
39 implements FileSystem
40 {
41 private final String rootFile;
42
43 public LocalFileSystem(final FileName rootName,
44 final String rootFile,
45 final FileSystemOptions opts)
46 {
47 super(rootName, null, opts);
48 this.rootFile = rootFile;
49 }
50
51 /***
52 * Creates a file object.
53 */
54 protected FileObject createFile(final FileName name) throws FileSystemException
55 {
56
57 return new LocalFile(this, rootFile, name);
58 }
59
60 /***
61 * Returns the capabilities of this file system.
62 */
63 protected void addCapabilities(final Collection caps)
64 {
65 caps.addAll(DefaultLocalFileProvider.capabilities);
66 }
67
68 /***
69 * Creates a temporary local copy of a file and its descendents.
70 */
71 protected File doReplicateFile(final FileObject fileObject,
72 final FileSelector selector)
73 throws Exception
74 {
75 final LocalFile localFile = (LocalFile) fileObject;
76 final File file = localFile.getLocalFile();
77 final SecurityManager sm = System.getSecurityManager();
78 if (sm != null)
79 {
80 final FilePermission requiredPerm = new FilePermission(file.getAbsolutePath(), "read");
81 sm.checkPermission(requiredPerm);
82 }
83 return file;
84 }
85
86 }