using System;
using System.Collections.Generic;
using System.Text;
using System.Collections.Concurrent;
using System.Numerics;
using System.IO;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
namespace wbackup
{
class ListingArchiveSourceFile : ListingSourceFiles
{
public ListingArchiveSourceFile(BackupStreamBase stream = null) : base(stream)
{
}
protected override void DoWork(string sourceFileName)
{
ListingSourceFiles(sourceFileName);
}
/// <summary>
/// ソースファイルのリストを作成する
/// </summary>
/// <param name="rootFolder"></param>
protected void ListingSourceFiles(string rootFolder)
{
foreach (string fileName in Directory.GetFiles(rootFolder))
{
if (false == isIgnoreFile(fileName))
{
var fileAttrib = File.GetAttributes(fileName);
if (false == fileAttrib.HasFlag(FileAttributes.Hidden) && true == fileAttrib.HasFlag(FileAttributes.Archive))
{
if (log.IsDebugEnabled) log.DebugFormat("Add File, {0}, {1:X}", fileName, fileAttrib);
File.SetAttributes(fileName, fileAttrib | FileAttributes.Archive);
AddNextSource(fileName);
}
else
{
if (log.IsDebugEnabled) log.DebugFormat("Not Archive File, {0}, {1:X}", fileName, fileAttrib);
}
}
else
{
if (log.IsDebugEnabled) log.DebugFormat("Ignore File, {0}", fileName);
}
}
foreach (string directory in Directory.GetDirectories(rootFolder))
{
var dirAttrib = File.GetAttributes(directory);
if (false == dirAttrib.HasFlag(FileAttributes.Hidden))
{
if (log.IsDebugEnabled) log.DebugFormat("Open Directory, {0}", directory);
ListingSourceFiles(directory);
}
}
}
}
}