blob: 75749ec5c356f307cc6b28a551a7aad0d3cfb8e9 [file] [log] [blame]
<!--
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.
-->
===Files vs. file objects===
What exactly is the difference between a filename on disk and a
<tt>FileObject</tt>? How do I convert them?
Raw files on disk are generally represented in Java using <tt>java.io.File</tt>. These correspond directly to what the operating system thinks of as a file.
Under the Filesystems API, raw files are not usually manipulated
directly. Rather, you should usually be using <tt>FileObject</tt>.
Besides the fact that most other APIs that
work with files expect <tt>FileObject</tt>, these have a
number of advantages:
* The filesystem they come from need not correspond to physical files on disk, but could be JAR file entries, or potentially database entries, FTP downloads, etc.
* The rest of the IDE can interact with them in an object-oriented fashion, including locking and change notification.
However a <tt>FileObject</tt> must always really exist on disk (or whatever backing storage is used), unlike <tt>File</tt>.
In case translation from one to the other is necessary:
* To look for a <tt>FileObject</tt> representing a <tt>File</tt>, use <tt>FileUtil.toFileObject(File)</tt>.
* To look for a <tt>File</tt> from a <tt>FileObject</tt>, you may use <tt>FileUtil.toFile(FileObject)</tt>.
===Apache Migration Information===
The content in this page was kindly donated by Oracle Corp. to the
Apache Software Foundation.
This page was exported from http://wiki.netbeans.org/DevFaqFileVsFileObject ,
that was last modified by NetBeans user Tboudreau
on 2010-01-24T05:41:34Z.