void Backup( CtrlFolder folder ) { if( string.IsNullOrEmpty( folder.Name ) || string.IsNullOrEmpty( folder.Path ) ) { LogInfo( " incomplete folder definition" ); return; } this.curr = PathCombine( current, folder.Name ); this.hist = (history == null) ? null : PathCombine( history, folder.Name ); this.fold = folder.Path; MatchSet.MatchDelegate md = new MatchSet.MatchDelegate( LogMatch ); this.inc = new MatchSet( MatchSet.SetType.Include, folder.Include, md ); this.exc = new MatchSet( MatchSet.SetType.Exclude, folder.Exclude, md ); this.his = new MatchSet( MatchSet.SetType.History, folder.History, md ); BackupCompareFolder( "", false, true ); }
public FolderPattern( CtrlFolder folder, CtrlFilter filter ) { this.folder = folder; this.filter = filter; }
//OneValの生成 //デフォルト値(nullを設定した場合、適切な値を自動でセットする) public static OneVal CreateOneVal(CtrlType ctrlType, Object val) { //Kernel kernel = new Kernel(); const string help = "help"; OneCtrl oneCtrl; switch (ctrlType) { case CtrlType.CheckBox: if (val == null) { val = true; } oneCtrl = new CtrlCheckBox(help); break; case CtrlType.Int: if (val == null) { val = 1; } oneCtrl = new CtrlInt(help, 3); // 3桁で決め打ち break; case CtrlType.File: if (val == null) { val = "1.txt"; } oneCtrl = new CtrlFile(help, 200, new Kernel()); break; case CtrlType.Folder: if (val == null) { val = "c:\temp"; } oneCtrl = new CtrlFolder(help, 200, new Kernel()); break; case CtrlType.TextBox: if (val == null) { val = "abc"; } oneCtrl = new CtrlTextBox(help, 20); break; case CtrlType.Radio: if (val == null) { val = 0; } oneCtrl = new CtrlRadio(help, new[] { "1", "2", "3" }, 30, 3); break; case CtrlType.Font: if (val == null) { val = new Font("MS ゴシック", 10f); } oneCtrl = new CtrlFont(help, LangKind.Jp); break; case CtrlType.Memo: if (val == null) { val = "1"; } oneCtrl = new CtrlMemo(help, 10, 10); break; case CtrlType.Hidden: if (val == null) { val = ""; } oneCtrl = new CtrlHidden(help, 30); break; case CtrlType.AddressV4: if (val == null) { val = ""; } oneCtrl = new CtrlAddress(help); break; case CtrlType.BindAddr: if (val == null) { val = "V4ONLY,INADDR_ANY,IN6ADDR_ANY_INIT"; } var list = new List <Ip>(); try { list.Add(new Ip(IpKind.InAddrAny)); list.Add(new Ip("192.168.0.1")); } catch (ValidObjException ex) { Assert.Fail(ex.Message); } oneCtrl = new CtrlBindAddr(help, list.ToArray(), list.ToArray()); break; case CtrlType.ComboBox: //listを{"1","2"}で決め打ち if (val == null) { val = 0; } oneCtrl = new CtrlComboBox(help, new[] { "1", "2" }, 10); break; case CtrlType.Dat: //カラムはTEXTBOX×2で決め打ち var listVal = new ListVal { new OneVal("name1", true, Crlf.Nextline, new CtrlCheckBox("help")), new OneVal("name2", true, Crlf.Nextline, new CtrlCheckBox("help")) }; if (val == null) { val = new Dat(new[] { CtrlType.CheckBox, CtrlType.CheckBox }); } oneCtrl = new CtrlDat(help, listVal, 300, LangKind.Jp); break; default: throw new Exception(ctrlType.ToString()); } return(new OneVal("name", val, Crlf.Nextline, oneCtrl)); }
//--- method ---------------------------- public CtrlFolder FolderAdd() { CtrlFolder f = new CtrlFolder(); List<CtrlFolder> list = (folders == null) ? new List<CtrlFolder>() : new List<CtrlFolder>( folders ); list.Add( f ); folders = list.ToArray(); return f; }
public void FolderDelete( CtrlFolder folder ) { if( folders != null ) { List<CtrlFolder> list = new List<CtrlFolder>( folders ); list.Remove( folder ); folders = (list.Count > 0) ? list.ToArray() : null; } }
public FolderInfo( CtrlFolder f, bool isCaseSensitive ) : this( f.Name, f.Path ) { filters = new MatchSet( f.Filters, isCaseSensitive ); }
void Scan( CtrlFolder folder ) { try { FolderInfo f = new FolderInfo( folder, ctrl.IsCaseSensitive ); Log( string.Empty ); Msg( "Folder: {0} : {1}", f.Name, f.Root ); if( string.IsNullOrEmpty( f.Name ) ) { throw new Exception( "Folder name is empty." ); } if( f.Name.IndexOfAny( InvalidFilenameCharacters ) >= 0 ) { throw new Exception( "Folder name contains invalid characters." ); } if( string.IsNullOrEmpty( f.Root ) ) { throw new Exception( "Folder path is empty." ); } if( f.Root.IndexOfAny( InvalidPathCharacters ) >= 0 ) { throw new Exception( "Folder path contains invalid characters." ); } ScanFolder( f, string.Empty ); } catch( Exception ex ) { ex.Data[ExArchiveRoot] = ctrl.Path; ex.Data[ExCurrentRoot] = current; ex.Data[ExHistoryRoot] = history; ex.Data[ExFolderName] = folder.Name; ex.Data[ExFolderRoot] = folder.Path; throw; } }