CmisSync.Lib.Cmis.Database.MoveFolder C# (CSharp) Метод

MoveFolder() публичный Метод

Move a folder.
public MoveFolder ( string oldPath, string newPath ) : void
oldPath string
newPath string
Результат void
        public void MoveFolder(string oldPath, string newPath)
        {
            oldPath = Normalize(oldPath);
            newPath = Normalize(newPath);

            Dictionary<string, object> parameters = new Dictionary<string, object>();
            parameters.Add("oldPath", oldPath);
            parameters.Add("oldPathLike", oldPath + "/%");
            parameters.Add("substringIndex", oldPath.Length + 1);
            parameters.Add("newPath", newPath);
            
            // Update folder itself
            ExecuteSQLAction("UPDATE folders SET path=@newPath WHERE path=@oldPath", parameters);

            // UPdate all folders under this folder
            ExecuteSQLAction("UPDATE folders SET path=@newPath||SUBSTR(path, @substringIndex) WHERE path LIKE @oldPathLike", parameters);

            // Update all files under this folder
            ExecuteSQLAction("UPDATE files SET path=@newPath||SUBSTR(path, @substringIndex) WHERE path LIKE @oldPathLike", parameters);
        }

Usage Example

Пример #1
0
        public void TestSpecialCharacter()
        {
            string oldPath = Path.Combine(RootPath, "a'b'c");
            string newPath = Path.Combine(RootPath, "'a'b'c'");

            using (Database database = new Database(DatabasePath))
            {
                CreateTestFile(oldPath, 10);
                database.AddFile(oldPath, "1", DateTime.Now, null, FakeHash);
                Assert.True(database.ContainsFile(oldPath));
                Assert.False(database.ContainsFile(newPath));
                database.MoveFile(oldPath, newPath);
                Assert.False(database.ContainsFile(oldPath));
                Assert.True(database.ContainsFile(newPath));
                database.RemoveFile(newPath);
                Assert.False(database.ContainsFile(oldPath));
                Assert.False(database.ContainsFile(newPath));
            }

            using (Database database = new Database(DatabasePath))
            {
                database.AddFolder(oldPath, "1", DateTime.Now);
                Assert.True(database.ContainsFolder(oldPath));
                Assert.False(database.ContainsFolder(newPath));
                database.MoveFolder(oldPath, newPath);
                Assert.False(database.ContainsFolder(oldPath));
                Assert.True(database.ContainsFolder(newPath));
                database.RemoveFolder(newPath);
                Assert.False(database.ContainsFolder(oldPath));
                Assert.False(database.ContainsFolder(newPath));
            }
        }
All Usage Examples Of CmisSync.Lib.Cmis.Database::MoveFolder