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); }
/// <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; }
// 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); }
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; }
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, ""); } } }