Пример #1
0
        public static void MoveCacheToFile(StreamIdentifier <TId> streamIdentifier, Guid cacheId, TId fileId)
        {
            var cacheFolder   = StreamIdentifierCache.GetCachFolderPath(cacheId);
            var fileCachePath = Path.Combine(cacheFolder, "file");
            var dataCachePath = Path.Combine(cacheFolder, "data");

            var saveFolder = streamIdentifier.DirectoryManager.GetFolderPath(fileId);

            if (CrossDirectoryInfo.Current.Exists(saveFolder))
            {
                throw new Exception("directory exist!");
            }
            CrossDirectoryInfo.Current.CreateDirectory(saveFolder);
            CrossFileInfo.Current.Move(fileCachePath, Path.Combine(saveFolder, "file"));
            var dataCache = JsonConvert.DeserializeObject <FileInfoCache>(CrossFileInfo.Current.ReadAllText(dataCachePath, Encoding.UTF8));

            FileInfo <TId> fileInfo = new FileInfo <TId>()
            {
                CreatedDateTime = DateTime.Now,
                Id         = fileId,
                FileName   = dataCache.FileName,
                FileSize   = dataCache.FileSize,
                IsComplete = true,
                DataType   = dataCache.DataType
            };

            CrossFileInfo.Current.WriteAllText(Path.Combine(saveFolder, "data"), JsonConvert.SerializeObject(fileInfo), Encoding.UTF8);
            DeleteFolder(cacheId);
        }
Пример #2
0
        internal static bool DeleteFolder(StreamIdentifier <TId> streamIdentifier, TId fileId)
        {
            try
            {
                var saveFolder = streamIdentifier.DirectoryManager.GetFilePath(fileId);

                while (saveFolder.Length > streamIdentifier.DirectoryManager.DefaultFolderPath.Length)
                {
                    if (CrossDirectoryInfo.Current.GetDirectories(saveFolder).Length == 0)
                    {
                        CrossDirectoryInfo.Current.Delete(saveFolder, true);
                    }
                    else
                    {
                        break;
                    }
                    saveFolder = Path.GetDirectoryName(saveFolder);
                }
                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }