⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 file.java

📁 业界著名的tomcat服务器的最新6.0的源代码。
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/*
 *  Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  See the NOTICE file distributed with
 *  this work for additional information regarding copyright ownership.
 *  The ASF licenses this file to You under the Apache License, Version 2.0
 *  (the "License"); you may not use this file except in compliance with
 *  the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

package org.apache.tomcat.jni;
/* Import needed classes */
import java.nio.ByteBuffer;
/** File
 *
 * @author Mladen Turk
 * @version $Revision: 467222 $, $Date: 2006-10-24 05:17:11 +0200 (mar., 24 oct. 2006) $
 */

public class File {

    /** Open the file for reading */
    public static final int APR_FOPEN_READ       = 0x00001;
    /** Open the file for writing */
    public static final int APR_FOPEN_WRITE      = 0x00002;
    /** Create the file if not there */
    public static final int APR_FOPEN_CREATE     = 0x00004;
    /** Append to the end of the file */
    public static final int APR_FOPEN_APPEND     = 0x00008;
    /** Open the file and truncate to 0 length */
    public static final int APR_FOPEN_TRUNCATE   = 0x00010;
    /** Open the file in binary mode */
    public static final int APR_FOPEN_BINARY     = 0x00020;
    /** Open should fail if APR_CREATE and file exists. */
    public static final int APR_FOPEN_EXCL       = 0x00040;
    /** Open the file for buffered I/O */
    public static final int APR_FOPEN_BUFFERED   = 0x00080;
    /** Delete the file after close */
    public static final int APR_FOPEN_DELONCLOSE = 0x00100;
    /** Platform dependent tag to open the file for
     * use across multiple threads
     */
    public static final int APR_FOPEN_XTHREAD     = 0x00200;
    /** Platform dependent support for higher level locked read/write
     * access to support writes across process/machines
     */
    public static final int APR_FOPEN_SHARELOCK   = 0x00400;
    /** Do not register a cleanup when the file is opened */
    public static final int APR_FOPEN_NOCLEANUP   = 0x00800;
    /** Advisory flag that this file should support
     * apr_socket_sendfile operation
     */
    public static final int APR_FOPEN_SENDFILE_ENABLED = 0x01000;
    /** Platform dependent flag to enable large file support;
     * <br /><b>Warning :</b> The APR_LARGEFILE flag only has effect on some platforms
     * where sizeof(apr_off_t) == 4.  Where implemented, it allows opening
     * and writing to a file which exceeds the size which can be
     * represented by apr_off_t (2 gigabytes).  When a file's size does
     * exceed 2Gb, apr_file_info_get() will fail with an error on the
     * descriptor, likewise apr_stat()/apr_lstat() will fail on the
     * filename.  apr_dir_read() will fail with APR_INCOMPLETE on a
     * directory entry for a large file depending on the particular
     * APR_FINFO_* flags.  Generally, it is not recommended to use this
     * flag.
     */
    public static final int APR_FOPEN_LARGEFILE      = 0x04000;

    /** Set the file position */
    public static final int APR_SET = 0;
    /** Current */
    public static final int APR_CUR = 1;
    /** Go to end of file */
    public static final int APR_END = 2;

    /* flags for apr_file_attrs_set */

    /** File is read-only */
    public static final int APR_FILE_ATTR_READONLY   = 0x01;
    /** File is executable */
    public static final int APR_FILE_ATTR_EXECUTABLE = 0x02;
    /** File is hidden */
    public static final int APR_FILE_ATTR_HIDDEN     = 0x04;


    /* File lock types/flags */

    /** Shared lock. More than one process or thread can hold a shared lock
     * at any given time. Essentially, this is a "read lock", preventing
     * writers from establishing an exclusive lock.
     */
    public static final int APR_FLOCK_SHARED    = 1;

    /** Exclusive lock. Only one process may hold an exclusive lock at any
     * given time. This is analogous to a "write lock".
     */
    public static final int APR_FLOCK_EXCLUSIVE = 2;
    /** mask to extract lock type */
    public static final int APR_FLOCK_TYPEMASK  = 0x000F;
    /** do not block while acquiring the file lock */
    public static final int APR_FLOCK_NONBLOCK  = 0x0010;

    /* apr_filetype_e values for the filetype member of the
     * apr_file_info_t structure
     * <br /><b>Warning :</b>: Not all of the filetypes below can be determined.
     * For example, a given platform might not correctly report
     * a socket descriptor as APR_SOCK if that type isn't
     * well-identified on that platform.  In such cases where
     * a filetype exists but cannot be described by the recognized
     * flags below, the filetype will be APR_UNKFILE.  If the
     * filetype member is not determined, the type will be APR_NOFILE.
     */

    /** no file type determined */
    public static final int APR_NOFILE  = 0;
    /** a regular file */
    public static final int APR_REG     = 1;
    /** a directory */
    public static final int APR_DIR     = 2;
    /** a character device */
    public static final int APR_CHR     = 3;
    /** a block device */
    public static final int APR_BLK     = 4;
    /** a FIFO / pipe */
    public static final int APR_PIPE    = 5;
    /** a symbolic link */
    public static final int APR_LNK     = 6;
    /** a [unix domain] socket */
    public static final int APR_SOCK    = 7;
    /** a file of some other unknown type */
    public static final int APR_UNKFILE = 127;


    /*
     * apr_file_permissions File Permissions flags
     */

    public static final int APR_FPROT_USETID     = 0x8000; /** Set user id */
    public static final int APR_FPROT_UREAD      = 0x0400; /** Read by user */
    public static final int APR_FPROT_UWRITE     = 0x0200; /** Write by user */
    public static final int APR_FPROT_UEXECUTE   = 0x0100; /** Execute by user */

    public static final int APR_FPROT_GSETID     = 0x4000; /** Set group id */
    public static final int APR_FPROT_GREAD      = 0x0040; /** Read by group */
    public static final int APR_FPROT_GWRITE     = 0x0020; /** Write by group */
    public static final int APR_FPROT_GEXECUTE   = 0x0010; /** Execute by group */

    public static final int APR_FPROT_WSTICKY    = 0x2000; /** Sticky bit */
    public static final int APR_FPROT_WREAD      = 0x0004; /** Read by others */
    public static final int APR_FPROT_WWRITE     = 0x0002; /** Write by others */
    public static final int APR_FPROT_WEXECUTE   = 0x0001; /** Execute by others */
    public static final int APR_FPROT_OS_DEFAULT = 0x0FFF; /** use OS's default permissions */


    public static final int APR_FINFO_LINK   = 0x00000001; /** Stat the link not the file itself if it is a link */
    public static final int APR_FINFO_MTIME  = 0x00000010; /** Modification Time */
    public static final int APR_FINFO_CTIME  = 0x00000020; /** Creation or inode-changed time */
    public static final int APR_FINFO_ATIME  = 0x00000040; /** Access Time */
    public static final int APR_FINFO_SIZE   = 0x00000100; /** Size of the file */
    public static final int APR_FINFO_CSIZE  = 0x00000200; /** Storage size consumed by the file */
    public static final int APR_FINFO_DEV    = 0x00001000; /** Device */
    public static final int APR_FINFO_INODE  = 0x00002000; /** Inode */
    public static final int APR_FINFO_NLINK  = 0x00004000; /** Number of links */
    public static final int APR_FINFO_TYPE   = 0x00008000; /** Type */
    public static final int APR_FINFO_USER   = 0x00010000; /** User */
    public static final int APR_FINFO_GROUP  = 0x00020000; /** Group */
    public static final int APR_FINFO_UPROT  = 0x00100000; /** User protection bits */
    public static final int APR_FINFO_GPROT  = 0x00200000; /** Group protection bits */
    public static final int APR_FINFO_WPROT  = 0x00400000; /** World protection bits */
    public static final int APR_FINFO_ICASE  = 0x01000000; /** if dev is case insensitive */
    public static final int APR_FINFO_NAME   = 0x02000000; /** ->name in proper case */

    public static final int APR_FINFO_MIN    = 0x00008170; /** type, mtime, ctime, atime, size */
    public static final int APR_FINFO_IDENT  = 0x00003000; /** dev and inode */
    public static final int APR_FINFO_OWNER  = 0x00030000; /** user and group */
    public static final int APR_FINFO_PROT   = 0x00700000; /**  all protections */
    public static final int APR_FINFO_NORM   = 0x0073b170; /**  an atomic unix apr_stat() */
    public static final int APR_FINFO_DIRENT = 0x02000000; /**  an atomic unix apr_dir_read() */



    /**
     * Open the specified file.
     * @param fname The full path to the file (using / on all systems)
     * @param flag Or'ed value of:
     * <PRE>
     * APR_FOPEN_READ              open for reading
     * APR_FOPEN_WRITE             open for writing
     * APR_FOPEN_CREATE            create the file if not there
     * APR_FOPEN_APPEND            file ptr is set to end prior to all writes
     * APR_FOPEN_TRUNCATE          set length to zero if file exists
     * APR_FOPEN_BINARY            not a text file (This flag is ignored on
     *                             UNIX because it has no meaning)
     * APR_FOPEN_BUFFERED          buffer the data.  Default is non-buffered
     * APR_FOPEN_EXCL              return error if APR_CREATE and file exists
     * APR_FOPEN_DELONCLOSE        delete the file after closing.
     * APR_FOPEN_XTHREAD           Platform dependent tag to open the file
     *                             for use across multiple threads
     * APR_FOPEN_SHARELOCK         Platform dependent support for higher
     *                             level locked read/write access to support
     *                             writes across process/machines
     * APR_FOPEN_NOCLEANUP         Do not register a cleanup with the pool
     *                             passed in on the <EM>pool</EM> argument (see below).
     *                             The apr_os_file_t handle in apr_file_t will not
     *                             be closed when the pool is destroyed.
     * APR_FOPEN_SENDFILE_ENABLED  Open with appropriate platform semantics
     *                             for sendfile operations.  Advisory only,
     *                             apr_socket_sendfile does not check this flag.
     * </PRE>
     * @param perm Access permissions for file.
     * @param pool The pool to use.
     * If perm is APR_OS_DEFAULT and the file is being created,
     * appropriate default permissions will be used.
     * @return The opened file descriptor.
     */
    public static native long open(String fname, int flag, int perm, long pool)
        throws Error;

    /**
     * Close the specified file.
     * @param file The file descriptor to close.
     */
    public static native int close(long file);

    /**
     * Flush the file's buffer.
     * @param thefile The file descriptor to flush
     */
    public static native int flush(long thefile);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -