public void Test_FileHidden() { switch (System.Environment.OSVersion.Platform) { case PlatformID.Unix: case PlatformID.MacOSX: String name = java.lang.SystemJ.getProperty("java.io.tmpdir") + ".VampireApi.secret"; java.io.File hidden = new java.io.File(name); if (!hidden.exists()) { String content = "secret=geheimnis"; byte[] value = System.Text.Encoding.GetEncoding("utf-8").GetBytes(content); java.io.FileOutputStream fos = new java.io.FileOutputStream(name); fos.write(value, 0, value.Length); fos.flush(); fos.close(); } Assert.True(new java.io.File(name).exists(), "java.io.File.exists() found not file " + name); Assert.True(hidden.isHidden(), "File " + hidden.toString() + " should be hidden"); break; default: Assert.Warn("Test_FileHidden not implemented for this platform"); break; } }
/* * Make the data directory unless it already exists */ void mkDataDirectory(String dataDir) //throws NullPointerException { java.io.File dd = new java.io.File(dataDir); if (!dd.exists()) { dd.mkdir(); } }
/* * Delete a file in the data directory */ public static void delFile(String fname) //throws NullPointerException, IOException { java.io.File f = new java.io.File(fname); // only delete a file that exists // if (f.exists()) { // try the delete. If it fails, complain // if (!f.delete()) { throw new java.io.IOException("Could not delete: " + f.getAbsolutePath() + "."); } } }
static java.util.Properties loadFilePrefsImpl(java.io.File file) { Properties result = new Properties(); if (!file.exists()) { file.getParentFile().mkdirs(); return(result); } if (file.canRead()) { java.io.InputStream inJ = null; java.nio.channels.FileLock lockJ = null; try { java.io.FileInputStream istream = new java.io.FileInputStream(file); inJ = new java.io.BufferedInputStream(istream); java.nio.channels.FileChannel channel = istream.getChannel(); lockJ = channel.lockJ(0L, java.lang.Long.MAX_VALUE, true); org.w3c.dom.Document doc = builder.parse(inJ); org.w3c.dom.NodeList entries = org.apache.xpath.XPathAPI.selectNodeList(doc .getDocumentElement(), "entry"); //$NON-NLS-1$ int length = entries.getLength(); for (int i = 0; i < length; i++) { org.w3c.dom.Element node = (org.w3c.dom.Element)entries.item(i); String key = node.getAttribute("key"); //$NON-NLS-1$ String value = node.getAttribute("value"); //$NON-NLS-1$ result.setProperty(key, value); } return(result); } catch (java.io.IOException e) { } catch (org.xml.sax.SAXException e) { } catch (javax.xml.transform.TransformerException e) { // transform shouldn't fail for xpath call throw new java.lang.AssertionError(e); } finally { releaseQuietly(lockJ); closeQuietly(inJ); } } else { file.delete(); } return(result); }
public static void delFile(String dataDir, String fname) {//throws NullPointerException, IOException { java.io.File f = new java.io.File(dataDir + java.io.File.separator + fname); // only delete a file that exists // if (f.exists()) { // try the delete. If it fails, complain // if (!f.delete()) { throw new java.io.IOException("Could not delete file: " + dataDir + "/" + fname + "."); } } }
public static void readLongNames(String inputDataDir) { String fullPath, longNameRecord; String[] fields; FieldTokenizer ft; java.io.File longColumnNameFile; dataDir = inputDataDir; java.io.BufferedReader longNameReader = (java.io.BufferedReader)null; fullPath = dataDir + fileSep + "TINYSQL_LONG_COLUMN_NAMES.dat"; longColumnNames = new java.util.Vector <Object>(); longColumnNameFile = new java.io.File(fullPath); if (longColumnNameFile.exists()) { try { longNameReader = new java.io.BufferedReader(new java.io.FileReader(fullPath)); while ((longNameRecord = longNameReader.readLine()) != null) { ft = new FieldTokenizer(longNameRecord, '|', false); fields = ft.getFields(); longColumnNames.addElement(fields[0]); longColumnNames.addElement(fields[1]); } longNameReader.close(); longNamesInFileCount = longColumnNames.size() / 2; if (debug) { java.lang.SystemJ.outJ.println("Long Names read: " + longNamesInFileCount); } } catch (Exception readEx) { java.lang.SystemJ.outJ.println("Reader exception " + readEx.getMessage()); longNamesInFileCount = 0; } } }
// static initialization // - load security properties files // - load statically registered providers // - if no provider description file found then load default providers static Security() { bool loaded = false; java.io.File f = new java.io.File(java.lang.SystemJ.getProperty("java.home") //$NON-NLS-1$ + java.io.File.separator + "lib" + java.io.File.separator //$NON-NLS-1$ + "security" + java.io.File.separator + "java.security"); //$NON-NLS-1$ //$NON-NLS-2$ if (f.exists()) { try { java.io.FileInputStream fis = new java.io.FileInputStream(f); java.io.InputStreamReader isJ = new java.io.InputStreamReader(fis); secprops.load(isJ); loaded = true; isJ.close(); } catch (java.io.IOException e) { // System.err.println("Could not load Security properties file: " // + e); } } if (Util.equalsIgnoreCase("true", secprops.getProperty("security.allowCustomPropertiesFile", "true"))) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ String securityFile = java.lang.SystemJ.getProperty("java.security.properties"); //$NON-NLS-1$ if (securityFile != null) { if (securityFile.startsWith("=")) { // overwrite //$NON-NLS-1$ secprops = new java.util.Properties(); loaded = false; securityFile = securityFile.substring(1); } try { securityFile = PolicyUtils.expand(securityFile, java.lang.SystemJ.getProperties()); } catch (PolicyUtils.ExpansionFailedException e) { // System.err.println("Could not load custom Security properties file " // + securityFile +": " + e); } f = new java.io.File(securityFile); java.io.InputStreamReader isj; try { if (f.exists()) { java.io.FileInputStream fis = new java.io.FileInputStream(f); isj = new java.io.InputStreamReader(fis); } else { java.net.URL url = new java.net.URL(securityFile); isj = new java.io.InputStreamReader(url.openStream()); } secprops.load(isj); loaded = true; isj.close(); } catch (java.io.IOException e) { // System.err.println("Could not load custom Security properties file " // + securityFile +": " + e); } } } if (!loaded) { registerDefaultProviders(); } Engine.door = new SecurityDoor(); }
/* * opens a DBF file. This is based on Pratap Pereira's * Xbase.pm perl module * @return column definition list (java.util.Hashtable<Object,Object>) * * @author Thomas Morgner <*****@*****.**> added check for * file exists, before the file is opened. Opening a non existing * file will create a new file, and we get errors while trying * to read the non-existend headers */ java.util.Hashtable <Object, Object> open_dbf() //throws TinySQLException { try { java.io.File f = new java.io.File(fullPath); if (TinySQLGlobals.DEBUG) { java.lang.SystemJ.outJ.println("Try to open " + f.getAbsolutePath()); } if (!f.exists()) { throw new TinySQLException("Unable to open " + f.getAbsolutePath() + " - does not exist. or can't be read."); } else if (!f.canRead()) { throw new TinySQLException("Unable to open " + f.getAbsolutePath() + " - file can't be read (permissions?)."); } if (f.canWrite()) { ftbl = new java.io.RandomAccessFile(f, "rw"); } else { /* * Open readonly if the file is not writeable. Needed for * databases on CD-Rom */ ftbl = new java.io.RandomAccessFile(f, "r"); } /* * Read the first 32 bytes ... */ dbfHeader = new DBFHeader(ftbl); /* * read the column info (each is a 32 byte bulk) ... */ java.util.Hashtable <Object, Object> coldef_list = new java.util.Hashtable <Object, Object>(); columnNameKeys = new java.util.Vector <Object>(); int locn = 0; // offset of the current column for (int i = 1; i <= dbfHeader.numFields; i++) { TsColumn coldef = DBFFile.readColdef(ftbl, table, i, locn); locn += coldef.size; // increment locn by the length of this field. coldef_list.put(coldef.name, coldef); columnNameKeys.addElement(coldef.name); } fileOpen = true; return(coldef_list); } catch (Exception e) { if (TinySQLGlobals.DEBUG) { java.lang.SystemJ.err.println(e.ToString()); // e.printStackTrace(); } throw new TinySQLException(e.getMessage()); } }
/** * * Deletes Columns from tableName, given a vector of * column definition (tsColumn) arrays.<br> * * ALTER TABLE table DROP [ COLUMN ] column { RESTRICT | CASCADE } * * @param tableName the name of the table * @param v a Vector containing arrays of column definitions. * @see tinySQL#AlterTableDropCol * */ internal override void AlterTableDropCol(String tableName, java.util.Vector <Object> v) {//throws IOException, tinySQLException { // rename the file ... String fullpath = dataDir + java.io.File.separator + tableName + DBFFileTable.dbfExtension; String tmppath = dataDir + java.io.File.separator + tableName + "-tmp" + DBFFileTable.dbfExtension; if (Utils.renameFile(fullpath, tmppath) == false) { throw new TinySQLException("ALTER TABLE DROP COL error in renaming " + fullpath); } try { // open the old file ... java.io.RandomAccessFile ftbl_tmp = new java.io.RandomAccessFile(tmppath, "r"); // read the first 32 bytes ... DBFHeader dbfHeader_tmp = new DBFHeader(ftbl_tmp); // read the column info ... java.util.Vector <Object> coldef_list = new java.util.Vector <Object>(dbfHeader_tmp.numFields - v.size()); int locn = 0; // offset of the current column nextCol : for (int i = 1; i <= dbfHeader_tmp.numFields; i++) { TsColumn coldef = readColdef(ftbl_tmp, tableName, i, locn); // remove the DROP columns from the existing cols ... for (int jj = 0; jj < v.size(); jj++) { String colName = (String)v.elementAt(jj); if (coldef.name.equals(colName)) { Utils.log("Dropping " + colName); goto nextCol; } } locn += coldef.size; // increment locn by the length of this field. // Utils.log("Recycling " + coldef.name); coldef_list.addElement(coldef); } // create the new table ... CreateTable(tableName, coldef_list); // copy the data from old to new // opening new created dBase file ... java.io.RandomAccessFile ftbl = new java.io.RandomAccessFile(fullpath, "rw"); ftbl.seek(ftbl.length()); // go to end of file int numRec = 0; for (int iRec = 1; iRec <= dbfHeader_tmp.numRecords; iRec++) { if (DBFFileTable.isDeleted(ftbl_tmp, dbfHeader_tmp, iRec) == true) { continue; } numRec++; ftbl.write(DBFFileTable.RECORD_IS_NOT_DELETED); // write flag // Read the whole column into the table's cache String column = DBFFileTable._GetCol(ftbl_tmp, dbfHeader_tmp, iRec); for (int iCol = 0; iCol < coldef_list.size(); iCol++) // write columns { TsColumn coldef = (TsColumn)coldef_list.elementAt(iCol); // Extract column values from cache String value = DBFFileTable.getColumn(coldef, column); java.lang.SystemJ.outJ.println("From cache column value" + value); value = Utils.forceToSize(value, coldef.size, " "); // enforce the correct column length byte[] b = value.getBytes(Utils.encode); // transform to byte and write to file ftbl.write(b); } } ftbl_tmp.close(); // remove temp file java.io.File f = new java.io.File(tmppath); if (f.exists()) { f.delete(); } DBFHeader.writeNumRecords(ftbl, numRec); ftbl.close(); } catch (Exception e) { throw new TinySQLException(e.getMessage()); } }
internal static bool doesFileExist(java.io.File f) { return(f.exists()); }
// static initialization // - load security properties files // - load statically registered providers // - if no provider description file found then load default providers static Security() { bool loaded = false; java.io.File f = new java.io.File(java.lang.SystemJ.getProperty("java.home") //$NON-NLS-1$ + java.io.File.separator + "lib" + java.io.File.separator //$NON-NLS-1$ + "security" + java.io.File.separator + "java.security"); //$NON-NLS-1$ //$NON-NLS-2$ if (f.exists()) { try { java.io.FileInputStream fis = new java.io.FileInputStream(f); java.io.InputStreamReader isJ = new java.io.InputStreamReader(fis); secprops.load(isJ); loaded = true; isJ.close(); } catch (java.io.IOException) { // System.err.println("Could not load Security properties file: " // + e); } } if (Util.equalsIgnoreCase("true", secprops.getProperty("security.allowCustomPropertiesFile", "true"))) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ String securityFile = java.lang.SystemJ.getProperty("java.security.properties"); //$NON-NLS-1$ if (securityFile != null) { if (securityFile.startsWith("=")) { // overwrite //$NON-NLS-1$ secprops = new java.util.Properties(); loaded = false; securityFile = securityFile.substring(1); } try { securityFile = PolicyUtils.expand(securityFile, java.lang.SystemJ.getProperties()); } catch (PolicyUtils.ExpansionFailedException) { // System.err.println("Could not load custom Security properties file " // + securityFile +": " + e); } f = new java.io.File(securityFile); java.io.InputStreamReader isj; try { if (f.exists()) { java.io.FileInputStream fis = new java.io.FileInputStream(f); isj = new java.io.InputStreamReader(fis); } else { java.net.URL url = new java.net.URL(securityFile); isj = new java.io.InputStreamReader(url.openStream()); } secprops.load(isj); loaded = true; isj.close(); } catch (java.io.IOException) { // System.err.println("Could not load custom Security properties file " // + securityFile +": " + e); } } } if (!loaded) { registerDefaultProviders(); } Engine.door = new SecurityDoor(); }