|
Java example source code file (UnixFileStore.java)
The UnixFileStore.java Java example source code
/*
* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package sun.nio.fs;
import java.nio.file.*;
import java.nio.file.attribute.*;
import java.nio.channels.*;
import java.util.*;
import java.io.IOException;
import java.security.AccessController;
import java.security.PrivilegedAction;
/**
* Base implementation of FileStore for Unix/like implementations.
*/
abstract class UnixFileStore
extends FileStore
{
// original path of file that identified file system
private final UnixPath file;
// device ID
private final long dev;
// entry in the mount tab
private final UnixMountEntry entry;
// return the device ID where the given file resides
private static long devFor(UnixPath file) throws IOException {
try {
return UnixFileAttributes.get(file, true).dev();
} catch (UnixException x) {
x.rethrowAsIOException(file);
return 0L; // keep compiler happy
}
}
UnixFileStore(UnixPath file) throws IOException {
this.file = file;
this.dev = devFor(file);
this.entry = findMountEntry();
}
UnixFileStore(UnixFileSystem fs, UnixMountEntry entry) throws IOException {
this.file = new UnixPath(fs, entry.dir());
this.dev = (entry.dev() == 0L) ? devFor(this.file) : entry.dev();
this.entry = entry;
}
/**
* Find the mount entry for the file store
*/
abstract UnixMountEntry findMountEntry() throws IOException;
UnixPath file() {
return file;
}
long dev() {
return dev;
}
UnixMountEntry entry() {
return entry;
}
@Override
public String name() {
return entry.name();
}
@Override
public String type() {
return entry.fstype();
}
@Override
public boolean isReadOnly() {
return entry.isReadOnly();
}
// uses statvfs to read the file system information
private UnixFileStoreAttributes readAttributes() throws IOException {
try {
return UnixFileStoreAttributes.get(file);
} catch (UnixException x) {
x.rethrowAsIOException(file);
return null; // keep compile happy
}
}
@Override
public long getTotalSpace() throws IOException {
UnixFileStoreAttributes attrs = readAttributes();
return attrs.blockSize() * attrs.totalBlocks();
}
@Override
public long getUsableSpace() throws IOException {
UnixFileStoreAttributes attrs = readAttributes();
return attrs.blockSize() * attrs.availableBlocks();
}
@Override
public long getUnallocatedSpace() throws IOException {
UnixFileStoreAttributes attrs = readAttributes();
return attrs.blockSize() * attrs.freeBlocks();
}
@Override
public <V extends FileStoreAttributeView> V getFileStoreAttributeView(Class
Other Java examples (source code examples)Here is a short list of links related to this Java UnixFileStore.java source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.