AddFile() public method

public AddFile ( string relativeFilePath, string shortPath ) : void
relativeFilePath string
shortPath string
return void
            public void Apply()
            {
                string newRelativePath;
                string newShortRelativePath;

                if (!_oldFullPath.StartsWithIgnoreCase(_rootDirectory))
                {
                    if (IsFileAllowed(_rootDirectory, _fullPath, _fileSystem, _fileSystemFilter, out newRelativePath, out newShortRelativePath))
                    {
                        _entries.AddFile(newRelativePath, newShortRelativePath);
                    }

                    return;
                }

                var oldRelativePath = PathHelper.MakeRelative(_rootDirectory, _oldFullPath);

                if (IsFileAllowed(_rootDirectory, _fullPath, _fileSystem, _fileSystemFilter, out newRelativePath, out newShortRelativePath))
                {
                    if (_entries.ContainsFileEntry(oldRelativePath))
                    {
                        _entries.RenameFile(oldRelativePath, newRelativePath, newShortRelativePath);
                    }
                    else
                    {
                        _entries.AddFile(newRelativePath, newShortRelativePath);
                    }
                }
                else
                {
                    _entries.DeleteFile(oldRelativePath);
                }
            }
Example #2
0
            public void Apply()
            {
                if (!_directoryFullPath.StartsWithIgnoreCase(_rootDirectory))
                {
                    return;
                }

                Queue <string> directories = new Queue <string>();

                directories.Enqueue(_directoryFullPath);

                while (directories.Count > 0)
                {
                    var directoryPath         = directories.Dequeue();
                    var directory             = _fileSystem.GetDirectoryInfo(directoryPath);
                    var relativeDirectoryPath = PathHelper.MakeRelative(_rootDirectory, directoryPath);

                    if (!directory.Exists)
                    {
                        continue;
                    }

                    // We don't want to add root directory
                    if (!string.IsNullOrEmpty(relativeDirectoryPath))
                    {
                        relativeDirectoryPath = PathHelper.EnsureTrailingSlash(relativeDirectoryPath);

                        // We don't add symlinks
                        if (directory.Attributes.HasFlag(FileAttributes.ReparsePoint))
                        {
                            continue;
                        }

                        if (!_fileSystemFilter.IsDirectoryAllowed(relativeDirectoryPath, directory.Attributes))
                        {
                            continue;
                        }

                        _entries.AddDirectory(relativeDirectoryPath);
                    }

                    foreach (var entry in directory.EnumerateFileSystemInfos())
                    {
                        if (entry is IDirectoryInfo)
                        {
                            directories.Enqueue(entry.FullName);
                        }
                        else
                        {
                            var relativeFilePath = PathHelper.MakeRelative(_rootDirectory, entry.FullName);

                            if (_fileSystemFilter.IsFileAllowed(relativeFilePath, entry.Attributes))
                            {
                                _entries.AddFile(relativeFilePath);
                            }
                        }
                    }
                }
            }
            public void Apply()
            {
                string relativePath;
                string shortRelativePath;

                if (IsFileAllowed(_rootDirectory, _fullPath, _fileSystem, _fileSystemFilter, out relativePath, out shortRelativePath))
                {
                    _entries.AddFile(relativePath, shortRelativePath);
                }
            }
            public void Apply()
            {
                string relativePath;

                if (!IsFileAllowed(_rootDirectory, _fullPath, _fileSystem, _fileSystemFilter, out relativePath))
                {
                    return;
                }

                _entries.AddFile(relativePath);
            }
        public MsBuildFileSystemWatcherEntriesTest() {
            _entries = new MsBuildFileSystemWatcherEntries();
/*
Basic relative path structure
├─[A]
│  ├─[A]
│  │  ├─[A]
│  │  │  ├─a.x
│  │  │  └─a.y
│  │  ├─[B]
│  │  │  ├─a.x
│  │  │  └─a.y
│  │  ├─c.x
│  │  └─c.y
│  ├─[B]
│  │  ├─[A]
│  │  ├─b.x
│  │  └─b.y
│  │
│  ├─c.x
│  └─c.y
├─[B]
│  ├─[A]
│  │  ├─[A]
│  │  │  ├─a.x
│  │  │  └─a.y
│  │  ├─[B]
│  │  │  ├─a.x
│  │  │  └─a.y
│  │  ├─c.x
│  │  └─c.y
│  └─[B]
│     ├─[A]
│     ├─b.x
│     └─b.y
├─.x
└─.y
*/
            _entries.AddDirectory(@"A", @"A");
            _entries.AddDirectory(@"A\A", @"A\A");
            _entries.AddDirectory(@"A\A\A", @"A\A\A");
            _entries.AddDirectory(@"A\A\B", @"A\A\B");
            _entries.AddDirectory(@"A\B", @"A\B");
            _entries.AddDirectory(@"A\B\A", @"A\B\A");
            _entries.AddDirectory(@"B", @"B");
            _entries.AddDirectory(@"B\A", @"B\A");
            _entries.AddDirectory(@"B\A\A", @"B\A\A");
            _entries.AddDirectory(@"B\A\B", @"B\A\B");
            _entries.AddDirectory(@"B\B", @"B\B");
            _entries.AddDirectory(@"B\B\A", @"B\B\A");

            _entries.AddFile(@"A\A\A\a.x", @"A\A\A\a.x");
            _entries.AddFile(@"A\A\A\a.y", @"A\A\A\a.y");
            _entries.AddFile(@"A\A\B\a.x", @"A\A\B\a.x");
            _entries.AddFile(@"A\A\B\a.y", @"A\A\B\a.y");
            _entries.AddFile(@"A\A\c.x", @"A\A\c.x");
            _entries.AddFile(@"A\A\c.y", @"A\A\c.y");
            _entries.AddFile(@"A\B\b.x", @"A\B\b.x");
            _entries.AddFile(@"A\B\b.y", @"A\B\b.y");
            _entries.AddFile(@"A\c.x", @"A\c.x");
            _entries.AddFile(@"A\c.y", @"A\c.y");
            _entries.AddFile(@"B\A\A\a.x", @"B\A\A\a.x");
            _entries.AddFile(@"B\A\A\a.y", @"B\A\A\a.y");
            _entries.AddFile(@"B\A\B\a.x", @"B\A\B\a.x");
            _entries.AddFile(@"B\A\B\a.y", @"B\A\B\a.y");
            _entries.AddFile(@"B\A\c.x", @"B\A\c.x");
            _entries.AddFile(@"B\A\c.y", @"B\A\c.y");
            _entries.AddFile(@"B\B\b.x", @"B\B\b.x");
            _entries.AddFile(@"B\B\b.y", @"B\B\b.y");
            _entries.AddFile(@".x", @".x");
            _entries.AddFile(@".y", @".y");

            _entries.ProduceChangeset();
        }