|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2004 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.web.dd.wizards; import org.openide.filesystems.FileObject; import org.openide.util.NbBundle; import org.openide.WizardDescriptor; /** * * @author mkuchtiak */ public class Utilities { /** Checks if the given file name can be created in the target folder. * * @param dir target directory * @param newObjectName name of created file * @param extension extension of created file * @return localized error message or null if all right */ final public static String canUseFileName (java.io.File dir, String relativePath, String objectName, String extension) { String newObjectName=objectName; if (extension != null && extension.length () > 0) { StringBuffer sb = new StringBuffer (); sb.append (objectName); sb.append ('.'); // NOI18N sb.append (extension); newObjectName = sb.toString (); } // check file name if (!checkFileName(objectName)) { return NbBundle.getMessage (Utilities.class, "MSG_invalid_filename", newObjectName); // NOI18N } // test if the directory is correctly specified FileObject folder = null; if (dir!=null) { try { folder = org.openide.filesystems.FileUtil.toFileObject(dir); } catch(java.lang.IllegalArgumentException ex) { return NbBundle.getMessage (Utilities.class, "MSG_invalid_path", relativePath); // NOI18N } } // test whether the selected folder on selected filesystem is read-only or exists if (folder!= null) { // target filesystem should be writable if (!folder.canWrite ()) { return NbBundle.getMessage (Utilities.class, "MSG_fs_is_readonly"); // NOI18N } if (folder.getFileObject (newObjectName) != null) { return NbBundle.getMessage (Utilities.class, "MSG_file_already_exist", newObjectName); // NOI18N } if (org.openide.util.Utilities.isWindows ()) { if (checkCaseInsensitiveName (folder, newObjectName)) { return NbBundle.getMessage (Utilities.class, "MSG_file_already_exist", newObjectName); // NOI18N } } } // all ok return null; } // helper check for windows, its filesystem is case insensitive (workaround the bug #33612) /** Check existence of file on case insensitive filesystem. * Returns true if folder contains file with given name and extension. * @param folder folder for search * @param name name of file * @param extension extension of file * @return true if file with name and extension exists, false otherwise. */ private static boolean checkCaseInsensitiveName (FileObject folder, String name) { // bugfix #41277, check only direct children java.util.Enumeration children = folder.getChildren (false); FileObject fo; while (children.hasMoreElements ()) { fo = (FileObject) children.nextElement (); if (name.equalsIgnoreCase (fo.getName ())) { return true; } } return false; } private static boolean checkFileName(String str) { char c[] = str.toCharArray(); for (int i=0;i |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 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.