File: XCopyCommandArgs.cs

package info (click to toggle)
mono 3.2.8%2Bdfsg-10
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 527,964 kB
  • ctags: 623,327
  • sloc: cs: 3,938,236; xml: 1,891,753; ansic: 418,737; java: 59,920; sh: 15,754; makefile: 11,067; sql: 7,956; perl: 2,279; cpp: 1,380; yacc: 1,203; python: 594; asm: 422; sed: 16; php: 1
file content (106 lines) | stat: -rw-r--r-- 6,227 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.

namespace CmdLine.Tests
{
    extern alias migrate;
    using System;

    /// <summary>
    ///     Test class to see if we can simulate processing of XCopy command lines
    /// </summary>
    /// <remarks>
    ///     XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
    ///     [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
    ///     [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B]
    ///     [/EXCLUDE:file1[+file2][+file3]...]
    /// 
    ///     source       Specifies the file(s) to copy.
    ///     destination  Specifies the location and/or name of new files.
    ///     /A           Copies only files with the archive attribute set,
    ///     doesn't change the attribute.
    ///     /M           Copies only files with the archive attribute set,
    ///     turns off the archive attribute.
    ///     /D:m-d-y     Copies files changed on or after the specified date.
    ///     If no date is given, copies only those files whose
    ///     source time is newer than the destination time.
    ///     /EXCLUDE:file1[+file2][+file3]...
    ///     Specifies a list of files containing strings.  Each string
    ///     should be in a separate line in the files.  When any of the
    ///     strings match any part of the absolute path of the file to be
    ///     copied, that file will be excluded from being copied.  For
    ///     example, specifying a string like \obj\ or .obj will exclude
    ///     all files underneath the directory obj or all files with the
    ///     .obj extension respectively.
    ///     /P           Prompts you before creating each destination file.
    ///     /S           Copies directories and subdirectories except empty ones.
    ///     /E           Copies directories and subdirectories, including empty ones.
    ///     Same as /S /E. May be used to modify /T.
    ///     /V           Verifies the size of each new file.
    ///     /W           Prompts you to press a key before copying.
    ///     /C           Continues copying even if errors occur.
    ///     /I           If destination does not exist and copying more than one file,
    ///     assumes that destination must be a directory.
    ///     /Q           Does not display file names while copying.
    ///     /F           Displays full source and destination file names while copying.
    ///     /L           Displays files that would be copied.
    ///     /G           Allows the copying of encrypted files to destination that does
    ///     not support encryption.
    ///     /H           Copies hidden and system files also.
    ///     /R           Overwrites read-only files.
    ///     /T           Creates directory structure, but does not copy files. Does not
    ///     include empty directories or subdirectories. /T /E includes
    ///     empty directories and subdirectories.
    ///     /U           Copies only files that already exist in destination.
    ///     /K           Copies attributes. Normal Xcopy will reset read-only attributes.
    ///     /N           Copies using the generated short names.
    ///     /O           Copies file ownership and ACL information.
    ///     /X           Copies file audit settings (implies /O).
    ///     /Y           Suppresses prompting to confirm you want to overwrite an
    ///     existing destination file.
    ///     /-Y          Causes prompting to confirm you want to overwrite an
    ///     existing destination file.
    ///     /Z           Copies networked files in restartable mode.
    ///     /B           Copies the Symbolic Link itself versus the target of the link.
    ///     /J           Copies using unbuffered I/O. Recommended for very large files.
    /// 
    ///     The switch /Y may be preset in the COPYCMD environment variable.
    ///     This may be overridden with /-Y on the command line.
    /// </remarks>
    [migrate::CmdLine.CommandLineArgumentsAttribute(Title = Title, Description = Description)]
    public class XCopyCommandArgs
    {
        public const string Title = "XCopy Example";

        public const string Description = "A possible implementation of XCopy as a command args class";

        /// source       Specifies the file(s) to copy.
        [migrate::CmdLine.CommandLineParameterAttribute(Name = "source", ParameterIndex = 1, Required = true,
            Description = "Specifies the file(s) to copy.")]
        public string Source { get; set; }

        /// destination  Specifies the location and/or name of new files.
        [migrate::CmdLine.CommandLineParameterAttribute(Name = "destination", ParameterIndex = 2,
            Description = "Specifies the file(s) to copy.")]
        public string Destination { get; set; }

        //   /A           Copies only files with the archive attribute set,
        [migrate::CmdLine.CommandLineParameterAttribute(Command = "A", Description = "Copies only files with the archive attribute set")]
        public bool ArchivedBit { get; set; }

        /// /I           If destination does not exist and copying more than one file,
        /// assumes that destination must be a directory.
        [migrate::CmdLine.CommandLineParameterAttribute(Command = "I",
            Description = "If destination does not exist and copying more than one file,assumes that destination must be a directory.")]
        public bool InferDirectory { get; set; }

        /// /D:m-d-y     Copies files changed on or after the specified date.
        [migrate::CmdLine.CommandLineParameterAttribute(Command = "D", ValueExample = "m-d-y",
            Description = "Copies files changed on or after the specified date.")]
        public DateTime ChangedAfterDate { get; set; }

        /// /EXCLUDE:file1[+file2][+file3]...
        [migrate::CmdLine.CommandLineParameterAttribute(Command = "EXCLUDE", ValueExample = "file1[+file2][+file3]...",
            DescriptionResourceId = "ExcludeDescription")]
        public string ExcludeFiles { get; set; }
    }
}