public ExternalFile NextFile() { if (!m_read) { ExternalFile file = new ExternalFile(); file.DataStream = m_file; file.Directory = false; file.Path = m_filename; file.Size = (int) m_file.Length; m_read=true; return file; } else return null; }
public ExternalFile NextFile() { if (!m_read) { ExternalFile file = new ExternalFile(); file.DataStream = m_file; file.Directory = false; file.Path = m_filename; file.Size = (int)m_file.Length; m_read = true; return(file); } else { return(null); } }
public bool PutFile(ExternalFile file) { if (file.Directory) Directory.CreateDirectory(file.Path); else { string dirname = Path.GetDirectoryName(file.Path); Directory.CreateDirectory(dirname); FileStream osfs = File.Create(file.Path); byte[] data = Globals.ReadStream(file.DataStream, file.Size); osfs.Write(data, 0, data.Length); osfs.Flush(); osfs.Close(); } return true; }
public ExternalFile NextFile() { //Sanity check if (m_files == null || m_files.Count == 0) { return(null); } //Prepare external file PathPair curpath = (PathPair)m_files[0]; ExternalFile file = new ExternalFile(); FileStream data = new FileStream(curpath.AbsolutePath, FileMode.Open); file.DataStream = data; file.Directory = false; file.Path = curpath.RelativePath; file.Size = (int)data.Length; //Pop off a file m_files.RemoveAt(0); return(file); }
public bool PutFile(ExternalFile file) { if (file.Directory) { Directory.CreateDirectory(file.Path); } else { string dirname = Path.GetDirectoryName(file.Path); Directory.CreateDirectory(dirname); FileStream osfs = File.Create(file.Path); byte[] data = Globals.ReadStream(file.DataStream, file.Size); osfs.Write(data, 0, data.Length); osfs.Flush(); osfs.Close(); } return(true); }
public void CloseFile(ExternalFile file) { }
public void CloseFile(ExternalFile file) { try { file.DataStream.Close(); } catch (Exception) { } }
public bool PutFile(ExternalFile file) { //Ignore directories if (file.Directory) return true; //Read data from file strea, byte[] data = new byte[file.Size]; file.DataStream.Read(data, 0, file.Size); //Create entry ZipEntry e = new ZipEntry(file.Path); m_sink.PutNextEntry(e); m_sink.Write(data, 0, file.Size); return true; }
public ExternalFile NextFile() { ZipEntry e; if (null == (e = m_source.GetNextEntry())) return null; else { ExternalFile efile = new ExternalFile(); efile.DataStream = m_source; efile.Path = e.Name; efile.Directory = e.IsDirectory; efile.Size = Math.Max(0, (int) e.Size); return efile; } }
/// <summary> /// Export data to the specified external sink /// </summary> public void ExportData(DataSet expdata, string prefix, CFile dir, IExternalSink extsink, bool exportfp, string relpath) { if (!dir.IsDirectory()) { throw new FileOperationException("Cannot export a single file"); } //Authorize if (!Authorize(dir, FileAction.READ)) { throw new FileOperationException("Permission denied for operation: READ"); } CFile.FileList dirlist = ListDirectory(dir); foreach (CFile file in dirlist) { string epath; if (prefix.Length > 0 && prefix[prefix.Length - 1] != '\\') { prefix += @"\"; } if (exportfp) { epath = prefix + GetExportPath(file); } else { epath = prefix + relpath + file.Name; } DataRow dirrow = expdata.Tables["File"].NewRow(); if (!exportfp) { dirrow["path"] = relpath + file.Name; } else { dirrow["path"] = epath; } ExternalFile extfile = new ExternalFile(); extfile.Path = epath; if (file.IsDirectory()) { dirrow["type"] = "dir"; expdata.Tables["File"].Rows.Add(dirrow); //Create the directory extfile.Directory = true; extsink.PutFile(extfile); ExportData(expdata, prefix, file, extsink, exportfp, relpath + file.Name + @"\"); } else { new FileSystem(m_ident).LoadFileData(file); extfile.Size = file.RawData.Length; extfile.DataStream = new MemoryStream(file.RawData, 0, file.RawData.Length); //File row dirrow["type"] = "file"; expdata.Tables["File"].Rows.Add(dirrow); extsink.PutFile(extfile); } } }