Java.io.File and uppercase/lowercase

Hello,
I am running into a weird problem with java.io.File on a Windows system. My program needs to validate a path the user entered. Sometimes, the path will contain a directory name that should be uppercase, but which the user entered in lowercase instead, and the <File>.exists() returns true anyways. I know on Windows, on the command line, directory and file names are not case-sensitive, which is probably why it was done that way. But this is causing problems because once the path is (supposedly) validated, it is handed to a Unix program (case-sensitive), and if it's not really valid there, the user has no way of correcting it. Whereas if it were found as invalid in the Java program, I could pop up an error, and the user could correct it.
The bottom line is, is there a way of telling a File object to return false if the path name is not EXACTLY identical, on Windows? Or would I have to check the path myself, without relying on File?
Thanks in advance,
J-S

In this case, this is not acceptable, since the files or directories on disk can be in any case. I just need the entered case to be exactly the same as the files.
In other terms, I need File.exists() to return false if the case does not match. I would think there is a way to do this, since internally, the function checks if the operating system is Windows or Unix before doing the comparison, and acts differently in each case...
From http://java.sun.com/j2se/1.3/docs/api/java/io/File.html (see equals or compareTo method) :
"On UNIX systems, alphabetic case is significant in comparing pathnames; on Win32 systems it is not."
I would like to force the Unix way of doing.

Similar Messages

  • I got a java excutable file and document from the instrument supplier I want to use it in labview , I want to Know how to do it , step by step

    I got a java excutable file and document from the instrument supplier I want to use it in labview , I want to Know how to do it , step by step
    Attachments:
    this is a java file changr the jpg to jar .jpg ‏101 KB

    I'd recommend searching the forums to find your answer.  http://forums.ni.com/ni/search?submitted=true&q=java+labview

  • Java.io.File and output.write to newly created file

    I'm using output.write(""); in conjunction with java.io.File to create a file with field data from a form submit. The file gets created and includes anything I add between the quotes rather then searching for it's value. My question is what is the syntax for putting <%= request.getParameters("") %> in the output.write brackets. I've been unsuccessful thus far so it must be my syntax.
    This works:
    try {
    File outputFile = new File("/tmp/filename");
    outputFile.createNewFile();
    FileWriter output = new FileWriter(outputFile);
    output.write("text in the file");
    output.close();
    } catch (IOException e) {
    System.out.println("Caught IOException: " + e.getMessage());
    // or.....
    System.err.println("Caught IOException: " + e.getMessage());
    %>
    I need to include the below and have the file represent <HTML> for redisplay.
    <html>
    <title><%= request.getParameter("car") %>, <%= request.getParameter("color") %></title>
    <font color=blue>Car Model: </font> <%= request.getParameter("carMod") %><br><br>
    <font color=blue>Car Color: </font> <%= request.getParameter("carColor") %><br><br>
    Can I wrap this somehow or do I need to define the field data another way?
    tks

    1)Do you want "<%= request.getParameter("car") %>" written exactly as that to the file, or 2)do you want to get the value of request.getParameter("car") and write it to the output?
    If 1):
    output.write("<title><%= request.getParameter(\"car\") %>,"+
            " <%= request.getParameter(\"color\") %></title>");else if 2):
    output.write("<title>"+ request.getParameter("car") +", "+
            request.getParameter("color")+"</title>");

  • Java Jar files, and what is needed to run them?

    I'm sort of confused on what happens with JAR files, because on my computers that have all of the java SDK's and programs installed it works as an executable. But on my computer that doesn't have java installed(except for the windows xp basic) it wont work or registers with winRAR.
    My question is, is what needs to be installed on the computer to get an executable jar file to work. Is it JRE, or the SDK? And where can I get the file/s that may be needed to be installed.
    Thanks for the help

    jre stands for java runtime environment, i.e. everything you need to run a java application on your computer.
    sdk stands for software development kit, i.e. everything you need to develop java applications
    the jre run jar files for sure

  • Do we have to separate java source files and class files after compiled..

    Hi,
    I really confussed with this:
    I have compiled java source files into a package and tried to use but the classes can not be found. Should I separate class and source files after compiled with packages names. I hope you understand what i mean.
    Thank you
    So Jag

    You can choose to separate the source files or not. It sounds like your problem has to do with Classpath and packages.
    If the file c:\base\compute\engine\mysourcefile.java starts with the statement "package engine;" then the fully qualified name of the class is is engine.mysourcefile. If the file c:\base\compute\client\mysourcefile.java starts with the statement "package client;" then its fully qualified name is client.mysourcefile.
    In your source files, whenever you refer to a class from another class, the compiler needs the fully qualified class name. You can either import the class or use the fully qualified name. In order for the compiler to find the class, the c:\base\compute directory must be in the Classpath (assuming the package definitions from above).
    Finally, to launch an application given the above, the command would be "java client.mysourcefile" assuming the main method is in client.mysourcefile.

  • Access mirror site using java, download files and other information?

    Hi, I have 2 nodes/servers on the system both running webservers and having the same interface, but at a time user will access one node at a time from their browser, but this interface will be able to allow the user to get information from the both the nodes. the information that the user can get is DB stored as well as files on the disk of either node.
    i can manage the DB, cuz there is nothing to it, but how do I get files from the other node?
    currently any files/web documents are all stored in a application directory of the web root and protected by htaccess i believe, so when a user logs on to node one he can access all plain text/binary files along with web content since the web server authorizes the user to access anything in that dir. but at the same time from the same session I want to be able to access files in a mirror site using the same username and password and not having him to enter it again. the username/pass combo is replicated on both the servers, it this possible?
    currently i use the http password protection provided by apache to access one node, but can i use the same session on another machine with the same credentials?
    If this is not possible how can i do this programatically using java? can i do can "ls" on the directory i want on another server and display the list to the user and then when he clicks on that file name i fetch it from the backup/mirror server and have him save it using http or ftp?
    It would be great if we can get a solution to this.
    Thank you very much in advance.
    Ankur

    If you install the web server on different machines, It is possible to share the informations between them.

  • Java.io.File and non-unicode characters in file name

    Unix filesystem object names are byte sequences. These byte sequences are not required to correspond to any character sequence in the current or any locale. How do I open a file if it has characters that do not corrospond to a valid unicode encoding for some current locale? Unless I am missing something, if I do a list on a parent directory that has some file names like this, those file names do not get added to the list. Hmmm....
    R.

    OK, create.c is a program that will create a file whose name is not a character in the 'ja' locale.
    Lister.java defines a class that lists files in the current directory. For each file, it spits out the 'toString()' version of the file, the char array of the name as hex, and the 'getBytes' byte array of the name.
    So, what you can do is compile and run create.c, which will create a file whose name is a single byte whose hex value is 99. Then compile and run Lister.java, which will give you the following output (shown for two different locales:
    $ export LANG=
    $ java Lister
    name:?; chars:99,; bytes:99,
    $ export LANG=ja
    $ java Lister
    name:?; chars:fffd,; bytes:3f,
    ---------------------------------------------Note that when running in the JA locale, there is no character corresponding to byte value 0x99. So, Java uses the replacement character 0xFFFD, and the '?' character 0x3F, as a replacement.
    The point is that there are files which Java cannot uniquely represent as a straight String. I suppose we could get the filename via JNI, do the conversion ourselves, and then use the private-use area of Unicode to encode all our strings, but ugh.
    //create.c
    #include <stdio.h>
    int main()
       const char* name = "\x99";
       FILE* file = fopen( name, "w" );
       if( file == NULL )
          printf( "could not open file %s\n", name );
          return 1;
       fclose( file );
       return 0;
    // Lister.java
    import java.io.*;
    public class Lister
        public static void main( String[] args )
            new Lister().run();
        public void run()
            try
                doRun();
            catch( Exception e )
                System.out.println( "Encountered exception: " + e );
        private void doRun() throws Exception
            File cwd = new File( "." );
            String[] children = cwd.list();
            for( int i = 0; i < children.length; ++i )
                printName( children[ i ] );
        private void printName( String s )
            System.out.print( "name:" );
            System.out.print( s );
            System.out.print( "; chars:" );
            printCharsAsHex( s );
            System.out.print( "; bytes:" );
            printBytesAsHex( s );
            System.out.println();
        private void printCharsAsHex( String s )
            for( int i = 0; i < s.length(); ++i )
                char ch = s.charAt( i );
                System.out.print( Integer.toHexString( ch ) + "," );
        private void printBytesAsHex( String s )
            byte[] bytes = s.getBytes();
            for( int i = 0; i < bytes.length; ++i )
                byte b = bytes[ i ];
                System.out.print( Integer.toHexString( unsignedExtension( b ) ) + "," );
        private int unsignedExtension( byte b )
            return (int)b & 0xFF;
    }

  • Java.io.File and links

    Currently, I'm working on a project that does file recursion through large filesystems. I've noticed that when I try to traverse links (shortcuts under windows NT) they simply show up as plain files that are not followed. For the program that I'm writing, this behaviour is good; I don't want to follow links. However, I don't know if this is the intended behaviour for the Java VM. Will this behaviour change in the future? If it does, will it default to following links, or to presenting them as plain files (as it does currently)?
    TIA for any help that you can provide.

    thnx..its started to work now...atleast it does give an output now..but now the prob is tht it duznt remove the html tags!!it simply returns the whole source code and prints it on the console!!

  • How to open-up a pdf file to a particular page via java? (file and page number from another program)

    I have created an Access 2003 Form. Data is entered. The data can be viewed once entered in the same form format, with one addition. The addition is a link to another program where we store files. The files stored are pdf documents. Each document is a scanned file (500+ pages). The link can open-up the pdf file. I want the link to open-up the pdf file to a particular page. I will supply the page number from the database.
    I am aware of Adobe Acrobat 7.0 PDF Open Parameters using a URL that specifies the file to be opened plus actions to be performed once the file is openend (i.e. http://example.org/doc.pdf#page=3). However, the 3rd party program transfers a file from a server to the client via java. The file does not go via a web browser. The java code transfer the file directly from the file server to the the client.
    Any idea how to accomplish the task of viewing a particular page with the process flow described?
    I am using Adobe Acrobat 7.0 Professional.

    So you are reading this file in a standalone version of Acrobat? If so then use the PDF Open Parameters /a option via the command line.
    Sabian
    Example:
    C:\Program Files\Adobe\Acrobat 7.0\Acrobat>Acrobat.exe /A "zoom=1000=OpenActions" "C:\Program Files\Adobe\Acrobat 7.0\Acrobat\SimpleSubmit.pdf"
    Where:
    Path to Acrobat: C:\Program Files\Adobe\Acrobat 7.0\Acrobat>Acrobat.exe
    Note: The example starts in the Acrobat application directory
    Switch: /A
    Parameter Syntax: "zoom=1000=OpenActions"
    Path to file: "C:\Program Files\Adobe\Acrobat 7.0\Acrobat\SimpleSubmit.pdf"
    Note: The quotes are very important for the syntax to work appropriately.

  • Java.io.File and "My documents"

    hi,
    In windows "My documents" is a shortcut to "c:\documents d settings\username\My Documents". Lets say that I ask the user to enter
    a filename with its path. When got it, i would do
    File file = new File(filename);
    but filename could be :
    "c:\data"
    "c:\temp"
    "My documents"
    I'm wondering if by specifying "My documents" there is class that would interpret "My documents" as "c:\Documents and Settings\username\My documents"?? Meaning for example, when doing this
    File file = new File("My Documents")
    String filename = file.getPath()
    System.out.println(filename);
    on the print out, i will see "c:\documents and settings\username\My Documents"????
    Thank you very much

    well, I'm reading from a config.properties file. The user can enter wheter "c:\data\" or "My documents\data"... and so, when I got "My documents\data" as an entry, i have to create a file object as "c:\documents and settings\username\My Documents\data". Instead of comparing each time (meaning if "My documents" than get the system.getproperties("user.home") + "My documents"), I want to know if there is way to create a File instance by passing "My documents" it is smart enough to know that "My docyments" refer to the directory "c:\documents and settings\username\My documents".

  • Trying to write data to a text file using java.io.File

    I am trying to create a text file and write data to it by using java.io.File and . I am using JDeveloper 10.1.3.2.0. When I try run the program I get a java.lang.NullPointerException error. Here is the snippet of code that I believe is calling the class that's causing the problem:
    String fpath = "/test.html";
    FileOutputStream out = new FileOutputStream(fpath);
    PrintStream pout = new PrintStream(out);
    Do I need to add additional locations for source files or am I doing something wrong? Any suggestions would be appreciated.
    Thank you.

    Hi dhartle,
    May be that can help:
    * Class assuming handling logs and connections to the Oracle database
    * @author Fabre tristan
    * @version 1.0 03/12/07
    public class Log {
        private String fileName;
         * Constructor for the log
        public Log(String name) {
            fileName = name;
         * Write a new line into a log from the line passed as parameter and the system date
         * @param   line    The line to write into the log
        public void lineWriter(String line) {
            try {
                FileWriter f = new FileWriter(fileName, true);
                BufferedWriter bf = new BufferedWriter(f);
                Calendar c = Calendar.getInstance();
                Date now = c.getTime();
                String dateLog =
                    DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM,
                                                   Locale.FRANCE).format(now);
                bf.write("[" + dateLog + "] :" + line);
                bf.newLine();
                bf.close();
            } catch (IOException e) {
                System.out.println(e.getMessage());
         * Write a new line into a log from the line passed as parameter,
         * an header and the system date
         * @param   header  The header to write into the log
         * @param   info    The line to write into the log
        public void lineWriter(String header, String info) {
            lineWriter(header + " > " + info);
         * Write a new long number as line into a log from the line 
         * passed as parameter, an header and the system date
         * @param   header  The header to write into the log
         * @param   info    The line to write into the log
        public void lineWriter(String header, Long info) {
            lineWriter(header + " > " + info);
         * Enable to create folders needed to correspond with the path proposed
         * @param   location    The path into which writing the log
         * @param   name        The name for the new log
         * @return  Log         Return a new log corresponding to the proposed location
        public static Log myLogCreation(String location, String name) {
            boolean exists = (new File(location)).exists();
            if (!exists) {
                (new File(location)).mkdirs();
            Log myLog = new Log(location + name);
            return myLog;
         * Enable to create the connection to the DB
         * @return  Connection  Return a new connection to the Oracle database
        public static Connection oracleConnectionCreation() throws Exception {
            // Register the Oracle JDBC driver
            DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
            //connecting to the DB
            Connection conn =
                DriverManager.getConnection("jdbc:oracle:thin:@myComputerIP:1521:myDB","user", "password");
            return conn;
         * This main is used for testing purposes
        public static void main(String[] args) {
            Log myLog =
                Log.myLogCreation("c:/Migration Logs/", "Test_LinksToMethod.log");
            String directory = "E:\\Blob\\Enalapril_LC-MS%MS_MS%MS_Solid Phase Extraction_Plasma_Enalaprilat_ERROR_BLOB_test";
            myLog.lineWriter(directory);
            System.out.println(directory);
    [pre]
    This class contained some other functions i've deleted, but i think it still works.
    That enables to create a log (.txt file) that you can fill line by line.
    Each line start by the current system date. This class was used in swing application, but could work in a web app.
    Regards,
    Tif                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Import java.io.file ??

    Hi,
    While I'm doing this course I'm trying to do more programs, in order to learn more about RPI, and I have a problem. I'm trying to acces to some files with threads, one to read the file and another one to read the file. The problem I get is when I just try to import java.io.file, it doesn't exist! so I cannot manage Files at all.
    I've seen there no such a class in the javame8 directory, so I've try to copy the class by psftp, but it doesn't work, either.
    Do you know why I can't to import the java.io.file and work with files?
    thank you very much

    Hi -
    First, Java ME is a subset of Java SE. Many of the standard packages are simply not available in Java ME.  java.io.File is one of many classes that is not available in Java ME.
    I encourage you to read through the API for Java ME's core API's, here.
    And while java.io.File is not supported, Java ME Embedded 8 does support file I/O using an optional package, JSR-75.  We will cover this in next week's lesson.
    Tom

  • Generic Populating the XML document using Java Class Generator and Reflection

    I am looking for a generic source code in order to convert the data parsed from any tabular text form ( tab delimited for example that maps certain XML Schema created form Database Schema for Oracle.
    I know it is possible to generate XML DTD or XSD from Oracle database table schema by XSU utility from XDK. And also it is possible to create Java source files from an XML DTD or XSD by using XML Clas Generator.
    I believe there must be some generic code that parses tabular text data and converts them to XML format using above mentioned generated Java source files and may be Java reflection mechanism.
    If anyone has any tool or knows any free ware that helps me, I would like to know about it, and I would really appreciate it.

    1. Read the XML file into a DMO object, walk the DOM to find the list, insert your new entry as a child, write the DOM back to a file.
    2. If the XML is not in a file, but in a string, then you can do the same with string input and output.

  • Traversing the Java Jar file

    Hi,
    This might sound like a weird question, but I need to traverse the Java Jar file and create respective Java objects into objects in some other language using reflection.
    Is it possible to find the path for the class files located in any jar file? Does Java supports traversing or reading and finding jar contents?
    Thanks

    I found a way to traverse the Jar, using java.util.zip, one can create a zip file for the given jar file and using ZipEntry it is possible to findout the properties associated with the jar/zip entries.

  • Translate java source file

    Dear Friends,
    Does anybody know how to translate java sources file and get all the info from it.
    Like i want to write a parser and want to extract its details and store in datastructures.
    Any similar examples present or any suggessions please inform.
    Thanks in advance.

    there is a tool called javacc which generates parsing code. You can also google for "javacc grammar repository" to find a java grammer you can pick up and start using

Maybe you are looking for

  • I need two header line in table control

    Hi all, I am using table control. The requirement is to have 2 headers in the table control. for example., if their is field name ' Vendor Comments', I need to display 'Vendor' in one line and 'Comments' in next line. Is it possible to have such 2 he

  • In Snow Leopard I cannot arrange by name/alpha in the finder column view

    I am using Snow Leopard MAC OS 10.6.8 and can no longer sort/arrange my folders and files in alpha order when I am in column view. I used to be able to do this by view>arrange by>name. But now it does not work.

  • IMovie shuts down when importing titles

    Every time I click on titles to add titles to my imovie, imovie shuts down. HELP!!

  • Can Mouse jump to "default" response

    I'm a Macintosh newbie (just bought my first iMAC after 25 years of PC). So my question may be better directed to the OS X group. Maybe the MAC does not have this capability. Probably the only thing I miss (so far) in getting used to the MAC vs. PC i

  • Calendar sync mystery

    HI I have a torch 6800, I have been having issues with the calender mail (was using google sync app which is now defunct) and have managed to add my main email address which is a google aps for business, so the email address doesn't end @gmail.com, i