Ejemplo n.º 1
0
        private void btnRecover_Click(object sender, EventArgs e)
        {
            ADSIO   connector = new ADSIO();
            ADSFile file      = connector.OpenFile(txbRecover.Text, "", "");

            svfSaveFile.FileName = file.Info.name + "." + file.Info.ext;
            if (file.Data == null)
            {
                tslFeedBack.Text = "O arquivo não existe.";
                return;
            }
            if (svfSaveFile.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    byte[] bFile = connector.ReadFile(1, file.Info.size, file);
                    File.WriteAllBytes(svfSaveFile.FileName, bFile);
                }
                catch (Exception ex)
                {
                    Debug.WriteLine("Exception: " + ex.ToString());
                    tslFeedBack.Text = "Não foi recuperar o arquivo.";
                }
                finally
                {
                    connector.CloseFile(file);
                }
            }
        }
Ejemplo n.º 2
0
 private void btnSaveInDisk_Click(object sender, EventArgs e)
 {
     if (txbExtension.Text != "" && txbFileName.Text != "")
     {
         try
         {
             ADSIO   connector = new ADSIO();
             string  fName     = txbFileName.Text;
             string  fExt      = txbExtension.Text;
             ADSFile file      = connector.OpenFile(fName, fExt, "File");
             int     writed    = connector.WriteFile(this.fileBuffer, 1, fileBuffer.Length, file);
             Debug.WriteLine("Bytes escritos: " + writed);
             connector.CloseFile(file);
             tslFeedBack.Text = "Arquivo enviado.";
         }
         catch (Exception ex)
         {
             Debug.WriteLine("Exception: " + ex.ToString());
             tslFeedBack.Text = "Erro ao enviar arquivo.";
         }
     }
     else
     {
         tslFeedBack.Text = "Digite valores válidos.";
     }
 }
Ejemplo n.º 3
0
 // Le dados de arquivo
 // com a representação do ADSFile
 // Estrutura similar ao fread de C
 public byte[] ReadFile(int size, int count, ADSFile stream)
 {
     if (size == 0 || count == 0)
     {
         return(null);
     }
     try {
         if ((size * count) > stream.Info.size)
         {
             return(null);
         }
         byte[] buffer = new byte[size * count];
         int    i      = 0;
         for (i = 0; i < count; i++)
         {
             Array.Copy(stream.Data, size * i, buffer, size * i, size);
         }
         return(buffer);
     }
     catch (Exception e)
     {
         Debug.WriteLine("Exception: " + e);
         return(null);
     }
 }
Ejemplo n.º 4
0
        // Abre arquivo e cria um objeto
        // representativo para a manipulação
        // Estrutura similar ao fopen de C
        public ADSFile OpenFile(string fileName, string extension, string description)
        {
            ADSFile file; FileInfo info;

            if (existsFile(fileName))
            {
                IntPtr ptr = getFileInfo(fileName);
                info = (FileInfo)Marshal.PtrToStructure(ptr, typeof(FileInfo));
                byte[] buffer = new byte[info.size];
                readFile(info.name, buffer);
                file = new ADSFile(info, buffer);
            }
            else
            {
                info = new FileInfo(fileName, description, extension, 0);
                file = new ADSFile(info, null);
            }
            return(file);
        }
Ejemplo n.º 5
0
 // Envia arquivo
 // para disco usando a representação ADSFile
 // Estrutura similar ao fclose de C
 public bool CloseFile(ADSFile stream)
 {
     if (!stream.Equals(null))
     {
         try
         {
             return(safeWriteFile(stream.Info.name,
                                  stream.Info.ext, 'f',
                                  stream.Info.desc,
                                  stream.Info.size,
                                  stream.Data));
         }
         catch (Exception e)
         {
             Debug.WriteLine("Exception: " + e);
             return(false);
         }
     }
     return(false);
 }
Ejemplo n.º 6
0
 // Escreve arquivo e
 // com a representação ADSFile
 // Estrutura similar ao fwrite de C
 public int WriteFile(byte[] data, int size, int count, ADSFile stream)
 {
     if (size == 0 || count == 0)
     {
         return(-1);
     }
     try
     {
         byte[] buffer = new byte[size * count];
         int    i      = 0;
         for (i = 0; i < count; i++)
         {
             Array.Copy(data, size * i, buffer, size * i, size);
         }
         stream.Info = new FileInfo(stream.Info.name, stream.Info.desc, stream.Info.ext, size * count);
         stream.Data = buffer;
         return(i);
     }
     catch (Exception e)
     {
         Debug.WriteLine("Exception: " + e);
         return(-1);
     }
 }