public static void Copy(this System.IO.DirectoryInfo @this, string source, string destination) { DirectoryInfo dir = new DirectoryInfo(source); DirectoryInfo[] dirs = dir.GetDirectories(); if (!dir.Exists) { throw (new DirectoryNotFoundException("Source directory does not exist or could not be found: " + source)); } if (!Directory.Exists(destination)) { Directory.CreateDirectory(destination); } FileInfo[] files = dir.GetFiles(); foreach (FileInfo file in files) { string temppath = Path.Combine(destination, file.Name); file.CopyTo(temppath, false); } foreach (var subdir in dirs) { string temppath = Path.Combine(destination, subdir.Name); @this.Copy(subdir.FullName, temppath); } }
//[SetUp] public void GlobalSetUp() { if (_EnvironmentInitialised == false) { DirectoryInfo difo = new DirectoryInfo(Path.GetFullPath(@"..\..\TestFolders\InFolder")); if (difo.Exists) { difo.RemoveReadOnly(); difo.Empty(true); } difo = new DirectoryInfo(Path.GetFullPath(@"..\..\TestFolders\OutFolder")); if (difo.Exists) { difo.RemoveReadOnly(); difo.Empty(true); } DirectoryInfo dif = new DirectoryInfo(Path.GetFullPath(@"..\..\TestFolders\InToBeCopied")); dif.Copy(Path.GetFullPath(@"..\..\TestFolders\InFolder")); difo = new DirectoryInfo(Path.GetFullPath(@"..\..\TestFolders\InFolder")); difo.RemoveReadOnly(); _MFH = new MusicFolderHelper(Path.GetFullPath(@"..\..\TestFolders\OutFolder")); CleanDirectories(_MFH); _MFH = new MusicFolderHelper(Path.GetFullPath(@"..\..\TestFolders\OutFolder")); _EnvironmentInitialised = true; } }
public static bool SpawAndRun( BackupScheduleWrapper job ) { SpawnLogger.Log( "Spawn request {0}".FillBlanks( job.Name ) ); string procName = "Bummer.ScheduleRunner.{0}".FillBlanks( job.ID ); Process[] processes = Process.GetProcessesByName( procName ); if( processes.Length > 0 ) { SpawnLogger.Log( "Spawn request, already running {0}".FillBlanks( job.Name ) ); return false; } DirectoryInfo dir = new DirectoryInfo( Configuration.DataDirectory.FullName + "\\" + job.ID ); if( Directory.Exists( dir.FullName ) ) { try { Directory.Delete( dir.FullName, true ); } catch( Exception ex ) { SpawnLogger.Log( "Spawn request, cleanup failed {0}: {1}".FillBlanks( job.Name, ex.Message ) ); return false; } } Type t = typeof(ScheduleJobSpawner); FileInfo fi = new FileInfo( t.Assembly.Location ); DirectoryInfo binDir = new DirectoryInfo( fi.DirectoryName ); binDir.Copy( dir.FullName, true ); string exeName = "{0}\\{1}.exe".FillBlanks( dir.FullName, procName ); fi.CopyTo( exeName, true ); FileInfo[] configs = binDir.GetFiles( "*.config" ); foreach( FileInfo configFile in configs ) { if( configFile.Name.Contains( ".vshost." ) ) { continue; } configFile.CopyTo( exeName + ".config" ); break; } SpawnLogger.Log( "Spawn request spawning {0}".FillBlanks( job.Name ) ); Process p = new Process(); p.StartInfo = new ProcessStartInfo( exeName ); p.StartInfo.CreateNoWindow = true; p.StartInfo.UseShellExecute = false; p.EnableRaisingEvents = true; p.Exited += p_Exited; p.Start(); return true; }
public void MoveButton_ClickHandler(object sender, EventArgs e) { ActionPanel.SetActiveView(FolderContentView); var path = RootDir + moveTree.SelectedNode + "\\"; foreach (string fileName in SelectedFiles) { File.Move(RootDir + RequestedPath + "\\" + fileName, path + fileName); } foreach (string directoryName in SelectedDirectories) { var directory = new DirectoryInfo(RootDir + RequestedPath + "\\" + directoryName); directory.Copy(RootDir + RequestedPath + "\\" + directoryName, path + directoryName); directory.Delete(true); } Cache.Remove(RootDir); ClearSelectedDirectories(); ClearSelectedFiles(); }
public static void CopyDirectory(DirectoryInfo src, DirectoryInfo target, bool overwrite = true, bool copySubdirs = true) { src.Copy(target, overwrite, copySubdirs); }
protected void Reinitialize() { CleanDirectories(false); DirectoryInfo root = new DirectoryInfo(Root); root.RemoveReadOnly(); root.Empty(true); DirectoryInfo In = new DirectoryInfo(DirectoryIn); In.RemoveReadOnly(); In.Empty(true); string Pathentry = Path.Combine(Path.GetFullPath(@"..\..\TestFolders\InToBeCopied"), this.CopyName); DirectoryInfo dif = new DirectoryInfo(Pathentry); dif.Copy(DirectoryIn); In = new DirectoryInfo(DirectoryIn); In.RemoveReadOnly(); _SK = GetKeys(); CopyDBIfNeeded(); }
protected void Init() { _MFH = new MusicFolderHelper(DirectoryOut); //_SK = GetKeys(); DirectoryIn = Path.Combine(RootDirectoryIn, InputDirectorySimpleName); object[] PIs = this.GetType().GetCustomAttributes(typeof(TestFolderAttribute), false); if ((PIs != null) && (PIs.Length > 0)) { TestFolderAttribute tfa = PIs[0] as TestFolderAttribute; if (!Directory.Exists(DirectoryIn)) { Directory.CreateDirectory(DirectoryIn); } CopyName = tfa.InFolderName ?? InputDirectorySimpleName; CopyNameDB = tfa.DBFolderName ?? InputDirectorySimpleName; DirectoryInfo dif = new DirectoryInfo(Path.Combine(Path.GetFullPath(@"..\..\TestFolders\InToBeCopied"), CopyName)); dif.Copy(DirectoryIn); dif = new DirectoryInfo(DirectoryIn); dif.RemoveReadOnly(); //IsOverride = true; } else { CopyName = InputDirectorySimpleName; CopyNameDB = InputDirectorySimpleName; } CopyDBIfNeeded(); _SK = GetKeys(); OldAlbums = new List<IList<ExportAlbum>>(); bool continu = true; int i = 0; while (continu) { string iPath = Path.Combine(DirectoryIn, string.Format("AlbumRef{0}.xml", i++)); if (File.Exists(iPath)) { OldAlbums.Add(ExportAlbums.Import(iPath, false, String.Empty, null)); } else continu = false; } Albums = new List<IList<AlbumDescriptor>>(); continu = true; i = 0; while (continu) { string iPath = Path.Combine(DirectoryIn, string.Format("Album{0}.xml", i++)); if (File.Exists(iPath)) { Albums.Add(AlbumDescriptorExchanger.Import(iPath, false, String.Empty, null)); } else continu = false; } Albums.SelectMany(o => o).SelectMany(u => u.RawTrackDescriptors.Select(t => new Tuple<AlbumDescriptor, TrackDescriptor>(u, t))).Apply(o => Assert.That(o.Item1, Is.EqualTo(o.Item2.AlbumDescriptor))); }