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); }
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); } }
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); }