Example #1
0
 /// <summary>
 /// Переименовывает файлы по указанному списку. Первым идет иисходный файл, через ; новой имя файла
 /// Если файл уже существует, то он пропускается
 /// </summary>
 /// <param name="pFileAction"></param>
 /// <param name="pWorkList"></param>
 private void RenameByFileCSV(FileAction pFileAction)
 {
     using (StreamReader sr = new StreamReader(pFileAction.SourceFilename))
     {
         string inputLine;
         inputLine = sr.ReadLine();
         while (inputLine != null)
         {
             if (!string.IsNullOrWhiteSpace(inputLine))
             {
                 var Pos = inputLine.IndexOf(';');
                 if (Pos >= 0)
                 {
                     var SourceName = inputLine.Substring(0, Pos - 1).Trim();
                     var TargetName = inputLine.Substring(Pos + 1).Trim();
                     if (File.Exists(SourceName))
                     {
                         FilenameInfo fi             = new FilenameInfo(SourceName, false);
                         var          TargetFullname = fi.Directory + "\\" + TargetName;
                         if (!File.Exists(TargetFullname))
                         {
                             File.Move(SourceName, TargetFullname);
                         }
                     }
                     else
                     {
                         Console.WriteLine("Not found: {SourceName}");
                     }
                 }
             }
             inputLine = sr.ReadLine();
         }
     }
 }
Example #2
0
        /// <summary>
        /// Формирует список файлов для перемещения
        /// </summary>
        private void MakeWorkList(FileAction pFileAction, List <FilenameInfo> pWorkList)
        {
            var pFilter = pFileAction.Filter;
            // получает строки с полным именем файла
            var Files = Directory.EnumerateFiles(pFilter.StartDirectory, pFilter.Extension, SearchOption.AllDirectories);

            foreach (var someFilename in Files)
            {
                var someInfo = new FilenameInfo(someFilename, false);
                if (pFilter.ExcludeFirstDigit)
                {
                    if (char.IsDigit(someInfo.Name[0]))
                    {
                        continue;
                    }
                }

                if (!string.IsNullOrWhiteSpace(pFilter.ExcludeParentDir))
                {
                    if (someInfo.Directory.EndsWith(pFilter.ExcludeParentDir, StringComparison.OrdinalIgnoreCase))
                    {
                        continue;
                    }
                }
                // добавить информацию cue, если расширение файла cue и влючение режим использования cue
                if (pFilter.DetectCueSheet)
                {
                    if (string.Compare(someInfo.Extension, "cue", true) == 0)
                    {
                        try
                        {
                            someInfo.CueSheet = new CueSharp.CueSheet(someFilename);
                        }
                        catch
                        {
                            //
                        }
                    }
                }
                pWorkList.Add(someInfo);
            }
            // Ищем каталоги в которых найдено более одного файла
            var S = from A in pWorkList group A by A.Directory into G select new { Name = G.Key, Kolvo = G.Count() };

            foreach (var some in S)
            {
                if (some.Kolvo == 1)
                {
                    continue;
                }
                var Many  = from A in pWorkList where A.Directory == some.Name select A;
                int Order = 1;
                foreach (var someMany in Many)
                {
                    someMany.Order = Order;
                    Order++;
                }
            }
        }
Example #3
0
        /// <summary>
        /// Формирует список дополнительных файлов, которые будут перемещаться вместе с основным
        /// Поиск по указанному расширению.
        /// </summary>
        private void MakeAddList(FileAction pFileAction, List <FilenameInfo> pWorkList)
        {
            var pFilter = pFileAction.Filter;

            if (pWorkList.Count() == 0)
            {
                return;
            }
            if (string.IsNullOrWhiteSpace(pFilter.Extension))
            {
                return;
            }
            foreach (var someFileInfo in pWorkList)
            {
                IEnumerable <string> AddFiles = null;
                try
                {
                    AddFiles = Directory.EnumerateFiles(someFileInfo.Directory + "\\" + pFilter.StartDirectory, pFilter.Extension, SearchOption.TopDirectoryOnly);
                }
                catch
                {
                }
                if (AddFiles != null)
                {
                    foreach (var someFilename in AddFiles)
                    {
                        var AddInfo = new FilenameInfo(someFilename, false);
                        if (pFileAction.JoinByName)
                        {
                            if (AddInfo.NameOnly.StartsWith(someFileInfo.NameOnly, StringComparison.OrdinalIgnoreCase))
                            {
                                someFileInfo.LinkedFiles.Add(AddInfo);
                            }
                        }
                        else
                        {
                            someFileInfo.LinkedFiles.Add(AddInfo);
                        }
                    }
                }
            }
        }
Example #4
0
        private void MakeWorkDirList(FileAction pFileAction, List <FilenameInfo> pWorkList)
        {
            var pFilter = pFileAction.Filter;
            // получает строки с полным именем файла
            var Files = Directory.EnumerateDirectories(pFilter.StartDirectory, pFilter.Extension, SearchOption.AllDirectories);

            foreach (var someFilename in Files)
            {
                var someInfo = new FilenameInfo(someFilename, true);

                if (!string.IsNullOrWhiteSpace(pFilter.ExcludeParentDir))
                {
                    if (someInfo.Directory.EndsWith(pFilter.ExcludeParentDir, StringComparison.OrdinalIgnoreCase))
                    {
                        continue;
                    }
                }
                pWorkList.Add(someInfo);
            }
        }