Example #1
0
        private static IFolder findOrCreateFolder(string folderName, IFolder searchInFolder, ZipEntry zipEntry)
        {
            foreach (IFolder folder in searchInFolder.Folders)
            {
                if ((folder as ItemInDatabase).Name == folderName)
                {
                    return(folder);
                }
            }
            FolderInDatabase newFolder = new FolderInDatabase(searchInFolder);

            newFolder.Description  = zipEntry.Comment;
            newFolder.CreationTime = zipEntry.DateTime;
            newFolder.Name         = folderName;
            if (zipEntry.ExternalFileAttributes > 0)
            {
                newFolder.Attributes = (FileAttributes)zipEntry.ExternalFileAttributes;
            }
            else
            {
                newFolder.Attributes = FileAttributes.Directory;
            }
            searchInFolder.AddToFolders(newFolder);
            return(newFolder);
        }
Example #2
0
        private static void ReadFolders(SQLiteConnection conn, IFolder did)
        {
            if (_readFoldCmd == null)
            {
                _readFoldCmd             = new SQLiteCommand(conn);
                _readFoldCmd.CommandText = "select * from [Folds] WHERE Owner = @own";
            }

            _readFoldCmd.Parameters.Clear();
            _readFoldCmd.Parameters.AddWithValue("@own", (did as ItemInDatabase).DbId);

            using (SQLiteDataReader rdr = _readFoldCmd.ExecuteReader())
            {
                while (rdr.Read())
                {
                    /*
                     * [ID] INTEGER NOT NULL PRIMARY KEY,
                     * [Owner] INTEGER NOT NULL,
                     * [Name] TEXT,
                     * [Ext] TEXT,
                     * [FullName] TEXT,
                     * [Attributes] INTEGER,
                     * [CreateT] INTEGER,
                     * [AccessT] INTEGER,
                     * [WriteT] INTEGER
                     */
                    ItemInDatabase afile;
                    int            attrib = rdr.GetInt32(5);
                    long           dbid   = rdr.GetInt64(0);

                    // Check the magic flag for a compressed file; remove the flag below
                    if ((attrib & COMPRESSED_FLAG) != 0)
                    {
                        afile = new CompressedFile((int)dbid, did);
                    }
                    else
                    {
                        afile = new FolderInDatabase((int)dbid, did);
                    }
                    afile.Name       = rdr.GetString(2);
                    afile.Extension  = rdr.GetString(3);
                    afile.FullName   = rdr.GetString(4);
                    afile.Attributes = (FileAttributes)(attrib & ~COMPRESSED_FLAG);

                    afile.CreationTime   = new DateTime(rdr.GetInt64(6));
                    afile.LastAccessTime = new DateTime(rdr.GetInt64(7));
                    afile.LastWriteTime  = new DateTime(rdr.GetInt64(8));

                    did.AddToFolders(afile as IFolder);
                    _foldHash.Add((int)dbid, afile);
                }
            }

            foreach (var afold in did.Folders)
            {
                ReadFolders(conn, afold);
            }
        }
Example #3
0
        private static IFolder findOrCreateFolder(string folderName, IFolder searchInFolder, TarEntry tarEntry)
        {
            foreach (IFolder folder in searchInFolder.Folders)
            {
                if ((folder as ItemInDatabase).Name == folderName)
                {
                    return(folder);
                }
            }
            FolderInDatabase newFolder = new FolderInDatabase(searchInFolder);

            // newFolder.Description = tarEntry.Comment;
            newFolder.CreationTime = tarEntry.ModTime;
            newFolder.Name         = folderName;
            newFolder.Attributes   = FileAttributes.Directory; // na sztywno
            searchInFolder.AddToFolders(newFolder);
            return(newFolder);
        }