static void ClearCallBack(object sender) { ScanAction action = (ScanAction)sender; action.ClearArchive(); Console.WriteLine("清理文件"); }
static void ActionCallback(object sender) { ScanAction action = (ScanAction)sender; ScanAction.ActionResult result = action.ActionDo(); Console.WriteLine("扫描次数: {0}", result.ScanTime); foreach (string file in result.SuccessList) { Console.WriteLine(" ==> 成功文件: {0}", file); } foreach (string file in result.FailureList) { Console.WriteLine(" ==> 失败文件: {0}", file); } }
static void Main(string[] args) { ScanAction action = ScanAction.Singleton(); new Timer(ActionCallback, action, 3000, 15000); new Timer(ClearCallBack, action, 5000, 15000); //Console.WriteLine(System.AppDomain.CurrentDomain.GetData("APP_CONFIG_FILE")); while (true) { string input = Console.ReadLine().ToLower(); if (input == "quit" || input == "exit") { break; } } }
private void MatchAllArtists(ScanAction aScanAction) { try { listBoxFolders.Items.Clear(); artistPaths = Directory.GetDirectories(textBoxArtistRootFolder.Text, "*", System.IO.SearchOption.TopDirectoryOnly); thumbFiles = Directory.GetFiles(textBoxArtistThumbFolder.Text, "*.jpg", SearchOption.TopDirectoryOnly); Dictionary<string, string> allArtistThumbs = new Dictionary<string, string>(thumbFiles.Length); for (int i = 0; i < thumbFiles.Length; i++) { int dirPos = thumbFiles[i].LastIndexOf('\\'); if (dirPos > 1) { string thumbPath = thumbFiles[i].Substring(dirPos + 1).ToLowerInvariant(); allArtistThumbs[thumbPath] = thumbFiles[i]; } } List<string> allThumbs = new List<string>(thumbFiles); foreach (string currentartistpath in artistPaths) { //string thumbName = GetLocalFolderThumbForDir(ArtistPath); //string displayString = string.Format("{0} : ({1} -> {2})", Path.GetFileName(thumbName), ArtistPath, thumbName); int dirPos = currentartistpath.LastIndexOf('\\'); if (dirPos > 1) { string artistName = currentartistpath.Substring(dirPos + 1); string displayString = artistName; string highResPath = string.Format("{0}{1}", artistName, "L.jpg").ToLowerInvariant(); string target = string.Format("{0}\\{1}.jpg", currentartistpath, artistName); if (allArtistThumbs.ContainsKey(highResPath)) { displayString += string.Format(" <-- {0} --> {1}\\{2}.jpg", allArtistThumbs[highResPath], currentartistpath, artistName); if (aScanAction == ScanAction.Save) { try { string source = allArtistThumbs[highResPath]; if (!File.Exists(target)) File.Move(source, target); } catch (Exception exm) { MessageBox.Show(string.Format("Could not move thumbnail - {0}", exm.Message)); } } } else { displayString += " <-- (missing) --X"; } if (aScanAction == ScanAction.Lookup) { if (!File.Exists(target)) listBoxFolders.Items.Add(displayString); } } } } catch (Exception ex) { MessageBox.Show(string.Format("Doh! ({0})", ex.Message)); } }
private void MatchAllArtists(ScanAction aScanAction) { try { listBoxFolders.Items.Clear(); artistPaths = Directory.GetDirectories(textBoxArtistRootFolder.Text, "*", System.IO.SearchOption.TopDirectoryOnly); thumbFiles = Directory.GetFiles(textBoxArtistThumbFolder.Text, "*.jpg", SearchOption.TopDirectoryOnly); Dictionary <string, string> allArtistThumbs = new Dictionary <string, string>(thumbFiles.Length); for (int i = 0; i < thumbFiles.Length; i++) { int dirPos = thumbFiles[i].LastIndexOf('\\'); if (dirPos > 1) { string thumbPath = thumbFiles[i].Substring(dirPos + 1).ToLowerInvariant(); allArtistThumbs[thumbPath] = thumbFiles[i]; } } List <string> allThumbs = new List <string>(thumbFiles); foreach (string currentartistpath in artistPaths) { //string thumbName = GetLocalFolderThumbForDir(ArtistPath); //string displayString = string.Format("{0} : ({1} -> {2})", Path.GetFileName(thumbName), ArtistPath, thumbName); int dirPos = currentartistpath.LastIndexOf('\\'); if (dirPos > 1) { string artistName = currentartistpath.Substring(dirPos + 1); string displayString = artistName; string highResPath = string.Format("{0}{1}", artistName, "L.jpg").ToLowerInvariant(); string target = string.Format("{0}\\{1}.jpg", currentartistpath, artistName); if (allArtistThumbs.ContainsKey(highResPath)) { displayString += string.Format(" <-- {0} --> {1}\\{2}.jpg", allArtistThumbs[highResPath], currentartistpath, artistName); if (aScanAction == ScanAction.Save) { try { string source = allArtistThumbs[highResPath]; if (!File.Exists(target)) { File.Move(source, target); } } catch (Exception exm) { MessageBox.Show(string.Format("Could not move thumbnail - {0}", exm.Message)); } } } else { displayString += " <-- (missing) --X"; } if (aScanAction == ScanAction.Lookup) { if (!File.Exists(target)) { listBoxFolders.Items.Add(displayString); } } } } } catch (Exception ex) { MessageBox.Show(string.Format("Doh! ({0})", ex.Message)); } }
/// <summary> /// Raises the <see cref="E:System.Windows.Application.Startup"/> event. /// </summary> /// <param name="e">A <see cref="T:System.Windows.StartupEventArgs"/> that contains the event data.</param> protected override void OnStartup(StartupEventArgs e) { FrameworkElement.LanguageProperty.OverrideMetadata( typeof(FrameworkElement), new FrameworkPropertyMetadata(System.Windows.Markup.XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag))); Thread.CurrentThread.Name = "MainThread"; base.OnStartup(e); // Init logger log4net.Config.XmlConfigurator.Configure(); // Register handler for unhandled exceptions this.DispatcherUnhandledException += new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(this.App_DispatcherUnhandledException); AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(this.CurrentDomain_UnhandledException); // Build var mainViewModel = new MainViewModel(); this.startViewModel = new StartViewModel(); var scanViewModel = new ScanViewModel(); var previewViewModel = new PreviewViewModel(); var previewNoFilesViewModel = new PreviewNoFilesViewModel(); var synchronizeViewModel = new SynchronizeViewModel(); var synchronizeNoFilesViewModel = new SynchronizeNoFilesViewModel(); var resultViewModel = new ResultViewModel(); var synchronizer = new Synchronizer(new FileLogger()); var startAction = new StartAction(); var scanAction = new ScanAction(synchronizer); var previewAction = new PreviewAction(); var previewNoFilesAction = new PreviewNoFilesAction(); var synchronizeNoFilesAction = new SynchronizeNoFilesAction(); var synchronizeAction = new SynchronizeAction(synchronizer); var resultAction = new ResultAction(); var mainWindow = new MainWindow(); // Bind startAction.Synchronize += scanAction.Process; scanAction.Preview += previewAction.Process; scanAction.PreviewNoFiles += previewNoFilesAction.Process; scanAction.Canceled += startAction.Process; previewAction.Synchronize += synchronizeAction.Process; previewAction.SynchronizeNoFiles += synchronizeNoFilesAction.Process; previewAction.Canceled += startAction.Process; previewNoFilesAction.Ok += startAction.Process; synchronizeAction.Result += resultAction.Process; synchronizeNoFilesAction.Ok += startAction.Process; resultAction.Ok += startAction.Process; // Inject startAction.Inject(mainViewModel); startAction.Inject(this.startViewModel); scanAction.Inject(mainViewModel); scanAction.Inject(scanViewModel); previewAction.Inject(mainViewModel); previewAction.Inject(previewViewModel); previewNoFilesAction.Inject(mainViewModel); previewNoFilesAction.Inject(previewNoFilesViewModel); synchronizeNoFilesAction.Inject(mainViewModel); synchronizeNoFilesAction.Inject(synchronizeNoFilesViewModel); synchronizeAction.Inject(mainViewModel); synchronizeAction.Inject(synchronizeViewModel); resultAction.Inject(mainViewModel); resultAction.Inject(this.startViewModel); resultAction.Inject(resultViewModel); mainWindow.Inject(mainViewModel); // Run this.startViewModel.LoadDefaultJobList(); this.MainWindow = mainWindow; startAction.Process(); this.MainWindow.Show(); }