Пример #1
0
        public static void CopyAll(DirectoryInfo source, DirectoryInfo target, FileOrFolder fileOrFolder)
        {
            if (source.FullName.ToLower() == target.FullName.ToLower())
            {
                return;
            }

            // Check if the target directory exists, if not, create it.
            if (Directory.Exists(target.FullName) == false)
            {
                Directory.CreateDirectory(target.FullName);
            }

            if (fileOrFolder == FileOrFolder.File)
            {
                File.Copy(source.FullName, Path.Combine(target.ToString(), source.Name), true);
                return;
            }
            DirectoryInfo TargetSubDir = target.CreateSubdirectory(source.Name);

            // Copy each file into it's new directory.
            foreach (FileInfo fi in source.GetFiles())
            {
                fi.CopyTo(Path.Combine(TargetSubDir.ToString(), fi.Name), true);
            }

            // Copy each subdirectory using recursion.
            foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
            {
                DirectoryInfo nextTargetSubDir =
                    TargetSubDir.CreateSubdirectory(diSourceSubDir.Name);
                CopyAll(diSourceSubDir, nextTargetSubDir, FileOrFolder.Folder);
            }
        }
    protected void SetFromFileOrFolder(FileOrFolder f)
    {
        if (titleText != null)
        {
            titleText.SetText(Language.EN, f.title_en);
            titleText.SetText(Language.DE, f.title_de);
        }

        selectedColor = f.color;
        SetHidden(f.hidden);
        initializeHiddenToggle.Invoke(f.hidden);
    }
Пример #3
0
            /// <summary>
            /// Áp dụng các tùy chỉnh của người dùng lên tên file/folder
            /// </summary>
            /// <param name="currentFileOrFolder">Đối tưởng File/Folder hiện tại</param>
            /// <param name="newName">Tên mà đối tượng hiện tại sẽ đổi sang</param>
            /// <param name="isFileRename">Đổi tên File hay Folder</param>
            public static void applyChange(ref FileOrFolder currentFileOrFolder, string newName, bool isFileRename)
            {
                string oldPath = currentFileOrFolder.Path + "\\" + currentFileOrFolder.Name;
                string newPath = currentFileOrFolder.Path + "\\" + newName;

                if (isFileRename)
                {
                    File.Move(oldPath, newPath);
                }
                else //Vấn đề: với Folder thì nó không phân biệt hoa thường, vd FILENAME và fileaname là không khác nhau với hệ thống
                {   //Nên khi người dùng chọn viết hoa tất cả chúng ta sẽ gặp lỗi => đổi qua tên trung gian rồi đổi lại theo ý người dùng
                    string dummyName = "asd" + currentFileOrFolder.Name; // đây là con trung gian
                    string dummyPath = currentFileOrFolder.Path + "\\" + dummyName;
                    Directory.Move(oldPath, dummyPath);
                    Directory.Move(dummyPath, newPath);
                }
                currentFileOrFolder.Name = newName;
            }
Пример #4
0
    // TODO write tests
    public static bool Move(this FileOrFolder fileOrFolder, int amount)
    {
        if (fileOrFolder.parent == null)
        {
            return(false);
        }

        var children = fileOrFolder.parent.children;
        var index    = children.IndexOf(fileOrFolder);
        var newIndex = index + amount;

        if (newIndex < 0 || newIndex >= children.Count)
        {
            return(false);
        }

        children.RemoveAt(index);
        children.Insert(index + amount, fileOrFolder);
        return(true);
    }
    int SelectItemInList(FileOrFolder item, IEnumerable <AExplorerItem> list)
    {
        var foundIndex = -1;
        var index      = 0;

        var dimItem = true;

        foreach (var i in list)
        {
            i.Select(i.fileOrFolder == item);

            if (i.fileOrFolder == item)
            {
                foundIndex = index;
                dimItem    = false;
            }

            i.Dim(dimItem);
            index++;
        }

        return(foundIndex);
    }
Пример #6
0
 public TemplateProject(string name, string path, FileOrFolder fileOrFolder)
 {
     this.Name         = name;
     this.Path         = path;
     this.FileOrFolder = fileOrFolder;
 }
 public void AddChild(FileOrFolder child)
 {
     children.Add(child);
     child.parent = this;
 }
Пример #8
0
 public SingleFileMessage(string relativePath, FileOrFolder objectType, SinglePathFileEvent eventType)
 {
     RelativePath = relativePath;
     ObjectType = objectType;
     EventType = eventType;
 }
    IEnumerator AddDataFrom(string csv, Folder root)
    {
        yield return(LoadData(csv));

        List <List <string> > strings = loadDataResult;

        // Data structure
        // 0       1         2       3        4              5     6    7               8           9       10          11          12
        // type    parent    name    color    content        DE    EN   thumbnailurl    location    date    copyright   Text DE     Text EN
        foreach (List <string> data in strings)
        {
            FileOrFolder newF = null;
            switch (data[0])
            {
            case "folder":
                var newFolder = new Folder();
                newF = newFolder;
                break;

            case "image":
                var newImage = new ImageFile
                {
                    url          = data.ElementAtOrDefault(4, ""),
                    thumbnailURL = data.ElementAtOrDefault(7, ""),
                    location     = data.ElementAtOrDefault(8, ""),
                    date         = data.ElementAtOrDefault(9, ""),
                    copyright    = data.ElementAtOrDefault(10, "")
                };
                newF = newImage;
                break;

            case "video":
                var newVideo = new VideoFile
                {
                    url          = data.ElementAtOrDefault(4, ""),
                    thumbnailURL = data.ElementAtOrDefault(7, ""),
                    location     = data.ElementAtOrDefault(8, ""),
                    date         = data.ElementAtOrDefault(9, ""),
                    copyright    = data.ElementAtOrDefault(10, "")
                };
                newF = newVideo;
                break;

            case "ar":
                var newAR = new ARFile
                {
                    uniqueName = data.ElementAtOrDefault(4, "")
                };
                newF = newAR;
                break;

            case "text":
                var newText = new TextFile
                {
                    textDE = data.ElementAtOrDefault(11, ""),
                    textEN = data.ElementAtOrDefault(12, "")
                };
                newF = newText;
                break;

            case "game":
                newF = new GameFile();
                break;

            default:
                break;
            }
            // TODO make parser more generic

            if (newF != null)
            {
                // these datapoints apply to all cases:
                var parent = root.GetAllFilesAndFolders(true).Find(f => f.nodeName == data.ElementAtOrDefault(1, "")) as Folder;
                parent?.AddChild(newF);

                Color defaultColor;
                if (parent != null)
                {
                    defaultColor = parent.color;
                }
                else
                {
                    defaultColor = Color.gray;
                }

                newF.nodeName = data.ElementAtOrDefault(2, "");
                newF.color    = ColorFromString(data.ElementAtOrDefault(3, ""), defaultColor);
                newF.title_de = data.ElementAtOrDefault(5, "");
                newF.title_en = data.ElementAtOrDefault(6, "");
            }
        }
    }