コード例 #1
0
ファイル: Program.cs プロジェクト: socarpl/FilesTool
        public static void MoveFolderToParent(string folderpath,
                                              bool removeChildFoldersOnCompletion = true,
                                              MoveConflictStrategy strategy       = MoveConflictStrategy.LeaveInFolder,
                                              bool forceRemoveChildFolder         = false)
        {
            if (Directory.Exists(folderpath))
            {
                var dir       = new DirectoryInfo(folderpath);
                var parentDir = Path.Combine(dir.FullName, ".."); //this seems to be a little hack. To be changed in future.

                foreach (var file in dir.GetFiles())
                {
                    string newFilePath = Path.Combine(parentDir, file.Name);
                    try
                    {
                        File.Move(file.FullName, newFilePath, strategy == MoveConflictStrategy.OverwriteInParent);
                    }
                    catch (Exception ex)
                    {
                        System.Diagnostics.Debug.WriteLine(ex.Message);
                    }
                }

                int filesremaining = dir.GetFiles().Length;

                if ((removeChildFoldersOnCompletion == true && filesremaining == 0) || forceRemoveChildFolder)
                {
                    Directory.Delete(folderpath);
                }
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: socarpl/FilesTool
 public static void MoveAllFoldersToParentInDir(string folderWithFoldersPath,
                                                bool removeChildFoldersOnCompletion = true,
                                                MoveConflictStrategy strategy       = MoveConflictStrategy.LeaveInFolder)
 {
     if (Directory.Exists(folderWithFoldersPath))
     {
         DirectoryInfo di   = new DirectoryInfo(folderWithFoldersPath);
         var           dirs = di.GetDirectories();
         foreach (var dir in dirs)
         {
             MoveFolderToParent(dir.FullName);
         }
     }
 }