Пример #1
0
		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 );
		}
Пример #2
0
 public FolderPattern( CtrlFolder folder, CtrlFilter filter )
 {
     this.folder  = folder;
     this.filter  = filter;
 }
Пример #3
0
        //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));
        }
Пример #4
0
 //--- 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;
 }
Пример #5
0
 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;
     }
 }
Пример #6
0
			public FolderInfo( CtrlFolder f, bool isCaseSensitive ) : this( f.Name, f.Path )
			{
				filters = new MatchSet( f.Filters, isCaseSensitive );
			}
Пример #7
0
		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;
			}
		}