public void TestChangeDirectory(string host, int port, FtpsSecurityProtocol protocol, string user, string pwd, string server) { using (FtpsClient c = new FtpsClient(host, port, protocol)) { c.AlwaysAcceptServerCertificate = true; c.Open(user, pwd); Assert.IsTrue(c.IsConnected); string dir1 = Guid.NewGuid().ToString(); string dir2 = Guid.NewGuid().ToString(); string dir3 = Guid.NewGuid().ToString(); string dir4 = Guid.NewGuid().ToString(); // create the directories and change into them c.MakeDirectory(dir1); c.ChangeDirectory(dir1); c.MakeDirectory(dir2); c.ChangeDirectory(dir2); c.MakeDirectory(dir3); c.ChangeDirectory(dir3); c.MakeDirectory(dir4); c.ChangeDirectoryUp(); c.ChangeDirectoryUp(); c.ChangeDirectoryUp(); c.ChangeDirectoryUp(); // try changing directory using a full path which does // not work for all FTP servers c.ChangeDirectory(String.Format("{0}/{1}/{2}/{3}", dir1, dir2, dir3, dir4)); c.ChangeDirectory("//"); // try changing directory using multipath command which should work // for all FTP servers c.ChangeDirectoryMultiPath(String.Format("{0}/{1}/{2}/{3}", dir1, dir2, dir3, dir4)); c.ChangeDirectoryUp(); // delete the temporary directories c.DeleteDirectory(dir4); c.ChangeDirectoryUp(); c.DeleteDirectory(dir3); c.ChangeDirectoryUp(); c.DeleteDirectory(dir2); c.ChangeDirectoryUp(); c.DeleteDirectory(dir1); } }