-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProgram.cs
More file actions
113 lines (91 loc) · 3.34 KB
/
Program.cs
File metadata and controls
113 lines (91 loc) · 3.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
namespace SearchForFilesOfTypeAndCopyToNewFolder
{
using System;
using System.Collections.Generic;
using System.IO;
using static System.Console;
internal class Program
{
private static String fileSearchPath;
private static String destinationFolderPath;
private static String fileType;
private static void Main()
{
Start();
}
private static void Start()
{
WriteLine("Enter a path to search for files to copy from...");
WriteLine();
fileSearchPath = ReadLine();
WriteLine();
WriteLine("Enter a file type: txt, exe, dll, etc...");
WriteLine();
fileType = ReadLine();
WriteLine();
WriteLine("Enter the destination folder path for the files...");
WriteLine();
destinationFolderPath = ReadLine();
WriteLine();
SearchAndCopyFiles();
}
private static void SearchAndCopyFiles()
{
try
{
IEnumerable<String> searchPath = Directory.EnumerateFileSystemEntries(fileSearchPath, ".", SearchOption.AllDirectories);
foreach (String file in searchPath)
{
if (file.Contains("." + fileType))
{
WriteLine("Original: " + file);
WriteLine();
CopyFiles(file);
}
}
}
catch (Exception e)
{
WriteLine("--------------------FILE SEARCH ERROR!-------------------");
WriteLine(e);
WriteLine("---------------------------------------------------------");
WriteLine("PRESS ENTER TO CONTINUE...");
ReadLine();
}
}
private static void CopyFiles(String fileName)
{
Char[] splitSymbols = new Char[] { '\\' };
String[] fileNameSplits = fileName.Split(splitSymbols);
foreach (String shortFileName in fileNameSplits)
{
if (shortFileName.Contains("." + fileType))
{
try
{
WriteLine("Destination: " + destinationFolderPath + shortFileName);
WriteLine();
CopyFiles(fileName, destinationFolderPath + shortFileName);
}
catch
{
WriteLine("File conflict: Same name, enter a new name: ");
String newName = ReadLine();
WriteLine();
WriteLine("Destination++: " + destinationFolderPath + newName + "." + fileType);
WriteLine();
CopyFiles(fileName, destinationFolderPath + newName + "." + fileType);
}
}
}
}
static void CopyFiles(String sourcePath, String destinationPath)
{
using (FileStream source = File.OpenRead(sourcePath))
using (FileStream destination = File.OpenWrite(destinationPath))
{
source.CopyTo(destination);
}
}
}
}