Example #1
0
        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;
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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;
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
 public void CloseFile(ExternalFile file)
 {
 }
Example #7
0
 public void CloseFile(ExternalFile file)
 {
     try { file.DataStream.Close(); } catch (Exception) { }
 }
Example #8
0
 public void CloseFile(ExternalFile file)
 {
 }
Example #9
0
        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;
        }
Example #10
0
 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;
     }
 }
Example #11
0
        /// <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);
                }
            }
        }