示例#1
0
        public override void Archive(ContentSourceItem item)
        {
            string archiveDirectoryName = Path.Combine(ResolveParameter <string>(PathConfig), ArchiveDirectoryName);
            string fileName             = Path.GetFileNameWithoutExtension(item.Uri.AbsolutePath);
            string fileExtension        = Path.GetExtension(item.Uri.AbsolutePath);

            string targetFileName = Path.Combine(archiveDirectoryName, $"{fileName}{fileExtension}");

            if (File.Exists(targetFileName))
            {
                int totalSameFiles = Directory.GetFiles(archiveDirectoryName, $"{fileName}*.*").Length;
                targetFileName = Path.Combine(ResolveParameter <string>(PathConfig), ArchiveDirectoryName, $"{fileName}_({totalSameFiles}){fileExtension}");
            }
            File.Move(item.Uri.AbsolutePath, targetFileName);
        }
示例#2
0
        private void OnRemovedFromCache(CacheEntryRemovedArguments args)
        {
            if (args.RemovedReason != CacheEntryRemovedReason.Expired)
            {
                return;
            }

            FileSystemEventArgs fileInfo = (FileSystemEventArgs)args.CacheItem.Value;

            if (!IsFileLocked(fileInfo.FullPath))
            {
                ContentSourceItem item = new ContentSourceItem(DateTime.Now, new Uri(fileInfo.FullPath));
                RaiseSourceChanged(item);
                return;
            }

            _cacheItemPolicy.AbsoluteExpiration = DateTimeOffset.Now.AddSeconds(1000);
            _memoryCache.Add(fileInfo.Name, fileInfo, _cacheItemPolicy);
        }
示例#3
0
 public abstract void Archive(ContentSourceItem item);
示例#4
0
 public abstract byte[] Read(ContentSourceItem item);
示例#5
0
 public override void Archive(ContentSourceItem item)
 {
     throw new NotImplementedException();
 }
示例#6
0
 public override byte[] Read(ContentSourceItem item)
 {
     throw new NotImplementedException();
 }
示例#7
0
 public override byte[] Read(ContentSourceItem item)
 {
     return(File.ReadAllBytes(item.Uri.AbsolutePath));
 }