Files
ETS/ETS_Data/fileMover.cs
T
Samuele E. Locatelli cef09ad074 Update x gestione spostamento:
- effettua spostamenti
- gestisce correttamente input dati x fasi & co

inoltre
- pulizia files da ignorare (log e dir upload temporanea
2012-09-07 12:47:03 +02:00

140 lines
4.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using NLog;
namespace ETS_Data
{
/// <summary>
/// classe gestione files
/// </summary>
public class fileMover
{
#region inizializzazione
/// <summary>
/// oggetto static per fare chiamate sul magazzino
/// </summary>
public static fileMover obj = new fileMover();
protected Logger lg = LogManager.GetCurrentClassLogger();
#endregion
/// <summary>
/// restituisce una tab di files dato l'elenco dei files
/// </summary>
/// <param name="_files"></param>
/// <returns></returns>
public static DS_utils.filesDataTable tabellaFiles(FileInfo[] _files)
{
DS_utils.filesDataTable _dsEF = new DS_utils.filesDataTable();
DS_utils.filesRow _riga;
foreach (FileInfo _fi in _files)
{
_riga = _dsEF.NewfilesRow();
_riga.dataCreaz = _fi.CreationTime;
_riga.dataMod = _fi.LastWriteTime;
_riga.Nome = _fi.Name;
_riga.size = _fi.Length / 1000;
_dsEF.AddfilesRow(_riga);
}
return _dsEF;
}
/// <summary>
/// restituisce una tab di files contenuti nel path da analizzare
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public static DS_utils.filesDataTable tabellaFiles(string path)
{
return tabellaFiles(elencoFile(path));
}
/// <summary>
/// restituisce l'elenco dei files in una data cartella
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public static FileInfo[] elencoFile(string path)
{
FileInfo[] answ;
try
{
DirectoryInfo di = checkDir(path);
answ = di.GetFiles();
}
catch
{
answ = null;
}
return answ;
}
/// <summary>
/// verifica esistenza directory, eventualmente crea e restituisce controllo DirectoryInfo
/// </summary>
/// <param name="dirPath"></param>
/// <returns></returns>
public static DirectoryInfo checkDir(string dirPath)
{
DirectoryInfo _di = new DirectoryInfo(System.Web.HttpContext.Current.Server.MapPath(dirPath));
if (!_di.Exists)
{
_di.Create();
}
return _di;
}
/// <summary>
/// elimina un file dato path e nomefile
/// </summary>
/// <param name="Path"></param>
/// <param name="Original_Nome"></param>
/// <returns></returns>
public bool eliminaFile(string Path, string Original_Nome)
{
bool answ = false;
try
{
//elimino file!
string filePath = string.Format("{0}\\{1}", Path, Original_Nome);
FileInfo _fi = new FileInfo(System.Web.HttpContext.Current.Server.MapPath(filePath));
_fi.Delete();
lg.Info("Eliminazione file: {0}/{1}", Path, Original_Nome);
answ = true;
}
catch
{ }
return answ;
}
/// <summary>
/// sposta il file da From a To...
/// </summary>
/// <param name="_pathFrom"></param>
/// <param name="_pathTo"></param>
/// <param name="_nomeFile"></param>
/// <returns></returns>
public bool muoviFile(string _pathFrom, string _pathTo, string _nomeFile)
{
bool fatto = false;
// verifica directory
checkDir(_pathFrom);
checkDir(_pathTo);
string filePathFrom = string.Format("{0}/{1}", _pathFrom, _nomeFile).Replace("//","/");
string filePathTo = string.Format("{0}/{1}", _pathTo, _nomeFile).Replace("//", "/");
FileInfo _fi = new FileInfo(System.Web.HttpContext.Current.Server.MapPath(filePathFrom));
try
{
_fi.CopyTo(System.Web.HttpContext.Current.Server.MapPath(filePathTo), true);
_fi.Delete();
fatto = true;
}
catch (Exception e)
{
lg.ErrorException("Eccezione in spostamento file!", e);
}
return fatto;
}
}
}