AdlsDotNetSDK/FileTransfer/Jobs/MakeDirJob.cs (46 lines of code) (raw):
using System;
using System.IO;
namespace Microsoft.Azure.DataLake.Store.FileTransfer.Jobs
{
/// <summary>
/// Job to create empty directory
/// </summary>
internal class MakeDirJob : BaseJob
{
private string SourceDirectoryNm { get; }
/// <summary>
/// Directory name
/// </summary>
private string DestDirectoryNm { get; }
/// <summary>
/// Adls client
/// </summary>
private AdlsClient Client { get; }
/// <summary>
/// Whether it is uploader or downloader
/// </summary>
private bool IsUpload { get; }
internal MakeDirJob(string sourceDir,string dirNm,AdlsClient client,bool isUpload) : base(0)
{
SourceDirectoryNm = sourceDir;
DestDirectoryNm = dirNm;
Client = client;
IsUpload = isUpload;
}
protected override object DoJob()
{
try
{
if (IsUpload)
{
Client.CreateDirectory(DestDirectoryNm);
}
else
{
Directory.CreateDirectory(DestDirectoryNm);
}
return new SingleEntryTransferStatus(SourceDirectoryNm,DestDirectoryNm, "",EntryType.Directory, SingleChunkStatus.Successful);
}
catch(Exception e)
{
return new SingleEntryTransferStatus(SourceDirectoryNm,DestDirectoryNm, e.Message, EntryType.Directory, SingleChunkStatus.Failed);
}
}
protected override string JobType()
{
return "FileTransfer.MakeDirJob";
}
protected override string JobDetails()
{
return $"Directory: {DestDirectoryNm}";
}
}
}