Ejemplo n.º 1
0
 public SMBDirectoryInfo(string fileName,
                         IFileSystem fileSystem,
                         ISMBCredentialProvider credentialProvider) : base(new FileSystem(), new DirectoryInfo(fileName))
 {
     _fullName           = fileName;
     _credentialProvider = credentialProvider;
     _fileSystem         = fileSystem;
 }
Ejemplo n.º 2
0
 public SMBDirectory(ISMBClientFactory smbclientFactory, ISMBCredentialProvider credentialProvider,
                     IFileSystem fileSystem, uint maxBufferSize) : base(new FileSystem())
 {
     _smbClientFactory   = smbclientFactory;
     _credentialProvider = credentialProvider;
     _fileSystem         = fileSystem;
     _maxBufferSize      = maxBufferSize;
     transport           = SMBTransportType.DirectTCPTransport;
 }
 public SMBDirectoryInfoFactory(IFileSystem fileSystem, ISMBCredentialProvider credentialProvider,
                                ISMBClientFactory smbClientFactory, uint maxBufferSize)
 {
     _fileSystem         = fileSystem;
     _credentialProvider = credentialProvider;
     _smbClientFactory   = smbClientFactory;
     _maxBufferSize      = maxBufferSize;
     transport           = SMBTransportType.DirectTCPTransport;
 }
Ejemplo n.º 4
0
 public SMBFileSystem(ISMBClientFactory ismbClientfactory, ISMBCredentialProvider credentialProvider, uint maxBufferSize = 65536)
 {
     File          = new SMBFile(ismbClientfactory, credentialProvider, this, maxBufferSize);
     Directory     = new SMBDirectory(ismbClientfactory, credentialProvider, this, maxBufferSize);
     DirectoryInfo = new SMBDirectoryInfoFactory(this, credentialProvider, ismbClientfactory, maxBufferSize);
     FileInfo      = new SMBFileInfoFactory(this, credentialProvider, ismbClientfactory, maxBufferSize);
     FileStream    = new SMBFileStreamFactory(this);
     Path          = new SMBPath(this);
     DriveInfo     = new SMBDriveInfoFactory(this, credentialProvider, ismbClientfactory, maxBufferSize);
 }
Ejemplo n.º 5
0
 public SMBDirectoryInfoFactory(IFileSystem fileSystem, ISMBCredentialProvider credentialProvider,
                                ISMBClientFactory smbClientFactory, uint maxBufferSize, ILoggerFactory loggerFactory = null)
 {
     _logger             = loggerFactory?.CreateLogger <SMBDirectoryInfoFactory>();
     _fileSystem         = fileSystem;
     _credentialProvider = credentialProvider;
     _smbClientFactory   = smbClientFactory;
     _maxBufferSize      = maxBufferSize;
     transport           = SMBTransportType.DirectTCPTransport;
 }
Ejemplo n.º 6
0
 public SMBFile(ISMBClientFactory smbclientFactory, ISMBCredentialProvider credentialProvider,
                IFileSystem fileSystem, uint maxBufferSize   = 65536,
                ISmbFileSystemSettings smbFileSystemSettings = null, ILoggerFactory loggerFactory = null) : base(new FileSystem())
 {
     _logger = loggerFactory?.CreateLogger <SMBFile>();
     _smbFileSystemSettings = smbFileSystemSettings ?? new SmbFileSystemSettings();
     _smbClientFactory      = smbclientFactory;
     _credentialProvider    = credentialProvider;
     _fileSystem            = fileSystem;
     _maxBufferSize         = maxBufferSize;
     transport = SMBTransportType.DirectTCPTransport;
 }
Ejemplo n.º 7
0
 internal SMBDirectoryInfo(DirectoryInfo directoryInfo,
                           IFileSystem fileSystem,
                           ISMBCredentialProvider credentialProvider) : this(directoryInfo.FullName, fileSystem, credentialProvider)
 {
     _creationTime      = directoryInfo.CreationTime;
     _creationTimeUtc   = directoryInfo.CreationTimeUtc;
     _fileSystem        = fileSystem;
     _lastAccessTime    = directoryInfo.LastAccessTime;
     _lastAccessTimeUtc = directoryInfo.LastAccessTimeUtc;
     _lastWriteTime     = directoryInfo.LastWriteTime;
     _lastWriteTimeUtc  = directoryInfo.LastWriteTimeUtc;
     _parent            = (directoryInfo.Parent != null) ? _directoryInfoFactory.FromDirectoryName(directoryInfo.Parent.FullName) : null;
     _root      = new SMBDirectoryInfo(directoryInfo.Root.FullName, fileSystem, credentialProvider);
     _exists    = directoryInfo.Exists;
     _extension = directoryInfo.Extension;
     _name      = directoryInfo.Name;
 }
Ejemplo n.º 8
0
        public SMBFileSystem(ISMBClientFactory ismbClientfactory,
                             ISMBCredentialProvider credentialProvider,
                             uint maxBufferSize = 65536,
                             ISmbFileSystemSettings smbFileSystemSettings = null,
                             ILoggerFactory loggerFactory = null)
        {
            if (smbFileSystemSettings == null)
            {
                smbFileSystemSettings = new SmbFileSystemSettings();
            }

            File          = new SMBFile(ismbClientfactory, credentialProvider, this, maxBufferSize, smbFileSystemSettings, loggerFactory);
            Directory     = new SMBDirectory(ismbClientfactory, credentialProvider, this, maxBufferSize, smbFileSystemSettings, loggerFactory);
            DirectoryInfo = new SMBDirectoryInfoFactory(this, credentialProvider, ismbClientfactory, maxBufferSize, loggerFactory);
            FileInfo      = new SMBFileInfoFactory(this, credentialProvider, ismbClientfactory, maxBufferSize, loggerFactory);
            FileStream    = new SMBFileStreamFactory(this);
            Path          = new SMBPath(this);
            DriveInfo     = new SMBDriveInfoFactory(this, credentialProvider, ismbClientfactory, maxBufferSize, loggerFactory);
        }
Ejemplo n.º 9
0
        internal SMBDirectoryInfo(string fileName,
                                  FileInformation fileInfo,
                                  IFileSystem fileSystem,
                                  ISMBCredentialProvider credentialProvider,
                                  ISMBCredential credential) : this(fileName, fileSystem, credentialProvider)
        {
            FileBasicInformation fileDirectoryInformation = (FileBasicInformation)fileInfo;

            if (fileDirectoryInformation.CreationTime.Time.HasValue)
            {
                _creationTime    = fileDirectoryInformation.CreationTime.Time.Value;
                _creationTimeUtc = CreationTime.ToUniversalTime();
            }
            if (fileDirectoryInformation.LastAccessTime.Time.HasValue)
            {
                _lastAccessTime    = fileDirectoryInformation.LastAccessTime.Time.Value;
                _lastAccessTimeUtc = LastAccessTime.ToUniversalTime();
            }
            if (fileDirectoryInformation.LastWriteTime.Time.HasValue)
            {
                _lastWriteTime    = fileDirectoryInformation.LastWriteTime.Time.Value;
                _lastWriteTimeUtc = LastWriteTime.ToUniversalTime();
            }

            _parent     = _smbDirectory.GetParent(fileName, credential);
            _fileSystem = fileSystem;
            var pathRoot = _fileSystem.Path.GetPathRoot(fileName);

            if (pathRoot != fileName)
            {
                _root = _directoryInfoFactory.FromDirectoryName(pathRoot, credential);
            }
            else
            {
                _root = this;
            }

            _exists    = _fileSystem.Directory.Exists(FullName);
            _extension = string.Empty;
            _name      = _fullName.GetLastPathSegment().RemoveLeadingAndTrailingSeperators();
        }
Ejemplo n.º 10
0
        public SMBCredential(string domain, string userName, string password, string path, ISMBCredentialProvider credentialProvider)
        {
            Domain              = domain;
            UserName            = userName;
            Password            = password;
            Path                = path;
            _credentialProvider = credentialProvider;

            Host      = path.Hostname();
            ShareName = path.ShareName();

            if (string.IsNullOrEmpty(Domain) && UserName.Contains('\\'))
            {
                var userNameParts = UserName.Split('\\');
                if (userNameParts.Length == 2)
                {
                    Domain   = userNameParts[0];
                    UserName = userNameParts[1];
                }
            }

            credentialProvider.AddSMBCredential(this);
        }
 public NetworkShareService(IFileSystem fileSystem, ISMBCredentialProvider credentialProvider)
 {
     _fileSystem         = fileSystem;
     _credentialProvider = credentialProvider;
 }