Beispiel #1
0
        /// <summary>
        /// Выполняет копирование файла в указанный каталог.
        /// </summary>
        /// <param name="pathFrom">Путь к копируемому файлу.</param>
        /// <param name="pathTo">Путь к каталогу, который будет содержать скопированный файл.</param>
        public void CopyFile(string pathFrom, string pathTo)
        {
            byte[] data = FileSystem.ReadFile(pathFrom);

            FileSystem.Directory resultDirectory = FileSystem.OpenDirectory(pathTo);

            string fileFullName = Utils.GetFileName(pathFrom);
            string path         = pathTo + "/" + fileFullName;

            if (resultDirectory.Find(fileFullName) == null)
            {
                FileSystem.CreateFile(path);
                FileSystem.WriteFile(path, data);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Выполняет копирование каталога в указанный каталог.
        /// При копировании каталога также копируется его содержимое.
        /// </summary>
        /// <param name="pathFrom">Путь к копируемому каталогу.</param>
        /// <param name="pathTo">Путь к каталогу, который будет содержать скопированный каталог.</param>
        public void CopyDirectory(string pathFrom, string pathTo)
        {
            FileSystem.Directory directory       = FileSystem.OpenDirectory(pathFrom);
            FileSystem.Directory resultDirectory = FileSystem.OpenDirectory(pathTo);

            if (resultDirectory.Find(directory.FullName) == null)
            {
                FileSystem.CreateDirectory(pathTo + "/" + directory.FullName);
            }

            for (int i = 2; i < directory.Count; i++)
            {
                MetaFile metaFile = directory[i];

                if (metaFile is FileSystem.Directory)
                {
                    CopyDirectory(pathFrom + "/" + metaFile.FullName, pathTo + "/" + directory.FullName);
                }
                else
                {
                    CopyFile(pathFrom + "/" + metaFile.FullName, pathTo + "/" + directory.FullName);
                }
            }
        }
Beispiel #3
0
        /// <summary>
        /// Находит в текущем каталоге указанный каталог и возвращает его.
        /// </summary>
        /// <param name="directoryName">Имя искомого каталога.</param>
        /// <returns>Объект найденного каталога или null.</returns>
        private Directory ReadDirectory(Directory currentDirectory, string directoryName)
        {
            //MetaFile metaFile = CurrentDirectory.Find(directoryName);
            //Directory directory = metaFile as Directory;

            //if (directory != null)
            //{
            //    return directory;
            //}
            //else
            //{
            //    return null;
            //}

            MetaFile metaFile = currentDirectory.Find(directoryName);
            Directory directory = metaFile as Directory;

            if (directory != null)
            {
                directory = ReadDirectoryClusters(directory.FirstClusterIndex, currentDirectory.FullPath + (currentDirectory.FullPath != "/" ? "/" : string.Empty) + directoryName, false, directory);
            }

            return directory;
        }