JDK-4089881 : java.io.File: Want to change file permissions/info
  • Type: Enhancement
  • Component: core-libs
  • Sub-Component: java.io
  • Affected Version: 1.1.4,1.1.5,1.1.6,1.2.0
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS:
    generic,solaris_2.5.1,solaris_2.6,windows_95,windows_nt generic,solaris_2.5.1,solaris_2.6,windows_95,windows_nt
  • CPU: generic,x86,sparc
  • Submitted: 1997-10-30
  • Updated: 2004-10-15
  • Resolved: 2000-03-10
Related Reports
Duplicate :  
Duplicate :  
Duplicate :  
Duplicate :  
Description
Name: rm29839			Date: 10/30/97


I would like to have simple calls to set the
permissions on a file.

i.e.
	setWritable
	setReadable
	setExecutable?

There are ways of requesting this info in 
java.io.File, but no ways of setting them.
Ideally, it would be nice to full chmod
capability, but failing that at least a
simple set read/writeable.
(Review ID: 14921)
======================================================================

The current functionality for accessing files
and file systems is rather limited. I belive it
is possible to evolve it to a more full functionality
and still keep it platform independent.

Java is no longer percieved as a language only for
accessing the web. It will be used for state-of-
the-art application and system development.
For this purpose, it need to have - in principle -
the same capabilities as a native platform.

The current io package cannot handle file access
rights for users, groups, etc. The original reason
for this lack of functionality may have been to
keep Java platform independent. It may take some
work, but it is possible to get this functionality
in a almost platform independent manner.

I would like to know if there is any work currently
going on in this area?

My first few (very early) ideas in this line
follows below.

I actually belive that it is possible to - for example -
implement a file system browser which is plattform
independent, with the functionality to completly
replace a platform specific file system browser.

I also belive that it is possible to deliver platoform
independent programs with platform specific bundles
to configure the platform dependent file system
support.

The general architechture idea is as follows.

Develope a abstract file system interface 
with access capabilities in three layers.
These layers progressivly adds capabilities
or concepts for access rights.

Layers:

 1) No user, group concepts.

 2) User and group concepts with the functionality
    of UNIX and NFS.

 3) Access Control Lists and functionality of
    Windows NT and standards such as the Orange Book.

The idea is that a program can manipulate the file
system with metods of the highest layer, and get
the results of the layer supported by the platform.

A user with a GUI will see and manipulate the file
system at the functionality supported by the platform.

A program without a GUI man be delivered with a
resource bundle specifying platform specific
file system details of which the program is not
aware. For example, by installing users and groups
which owns files created by the program.

You may note that the work amounts to specify
a file system in Java. It is platform specific
in the meaning that it isn't modelled after
a specific platform. But it cannot be done
without specifying a model architecture for
the file system. In practice, this will not cause
any great concern since different operating systems
doesn't seems to differ greatly in the concepts
used.
###@###.### 10/15/04 20:40 GMT

Comments
WORK AROUND Name: rm29839 Date: 10/30/97 Drop into native methods. (Which we have had to do). ======================================================================
11-06-2004

EVALUATION This issue will be addressed as part of the New I/O work. -- mr@eng 2000/3/9
03-08-0175