FileLocation
using System;
using System.Collections;
using System.IO;
namespace Aspera.Transfer
{
public class FileLocation
{
internal ArrayList paths = new ArrayList();
private bool _isValidPairs = true;
private string _tempFile;
public bool IsValidPairs => _isValidPairs;
public string TempFileName => _tempFile;
internal ArrayList getPaths()
{
return paths;
}
public void addPath(string filePath)
{
if (filePath != null && filePath.Trim().Length > 0) {
paths.Add(new PathPair(filePath.Trim()));
_isValidPairs = false;
}
}
public void addPath(string inSrc, string inDest)
{
if (inDest != null && inDest != null)
paths.Add(new PathPair(inSrc.Trim(), inDest.Trim()));
}
internal void addPath(PathPair inPair)
{
if (inPair != null)
paths.Add(inPair);
}
private void clear()
{
paths.Clear();
}
internal string buildCommand()
{
createTempPairFile();
string result = "";
if (paths.Count > 0)
result = ((!_isValidPairs) ? ("--file-list=" + _tempFile) : ("--file-pair-list=" + _tempFile));
return result;
}
private void createTempPairFile()
{
_tempFile = Path.GetTempPath() + "faspManagerFileList" + Guid.NewGuid().ToString() + ".tmp";
using (StreamWriter streamWriter = new StreamWriter(_tempFile)) {
foreach (PathPair path in paths) {
streamWriter.WriteLine(path.Source);
if (_isValidPairs)
streamWriter.WriteLine(path.Destination);
}
streamWriter.Flush();
}
}
public string getFirstPath()
{
string result = "";
if (paths.Count > 0 && paths[0] != null)
result = ((PathPair)paths[0]).Source;
return result;
}
}
}