コード例 #1
0
ファイル: Server.cs プロジェクト: jsakamoto/bjd5
 public Server(Kernel kernel, Conf conf, OneBind oneBind)
     : base(kernel, conf, oneBind)
 {
     _bannerMessage = kernel.ChangeTag((String) Conf.Get("bannerMessage"));
     //���[�U���
     _listUser = new ListUser((Dat) Conf.Get("user"));
     //���z�t�H���_
     _listMount = new ListMount((Dat) Conf.Get("mountList"));
 }
コード例 #2
0
ファイル: CurrentDir.cs プロジェクト: jsakamoto/bjd5
        OneMount _oneMount; //仮想フォルダ外にいる場合 null

        #endregion Fields

        #region Constructors

        //ホームディレクトリで初期化される
        public CurrentDir(string homeDir, ListMount listMount)
        {
            _listMount = listMount;
            if (homeDir[homeDir.Length - 1] != '\\'){
                _homeDir = homeDir + "\\";
            } else{
                _homeDir = homeDir;
            }
            _current = _homeDir;
        }
コード例 #3
0
ファイル: CurrentDirTest.cs プロジェクト: schifflee/bjd5
        public void ContentTypeTest()
        {
            //....\\FtpServerTest\\TestDir
            var startup = Directory.GetCurrentDirectory();
            var path1   = Path.GetDirectoryName(startup);
            var path2   = Path.GetDirectoryName(path1);
            var dir     = Path.GetDirectoryName(path2);
            //dir = c:\tmp2\bjd5
            //var dir = new File(".").getAbsoluteFile().getParentFile().getParent(); //c:\dev\bjd6

            var workDir       = dir + "\\work";
            var rootDirectory = workDir + "\\FtpTestDir";

            var listMount = new ListMount(null);

            //var op  = new Option(kernel, "", "Ftp");
            var homeDir = string.Format("{0}\\home0", rootDirectory);

            //ディレクトリ変更 と表示テキスト
            var currentDir = new CurrentDir(homeDir, listMount); //初期化

            Assert.That(currentDir.Cwd("home0-sub0"), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/home0-sub0"));

            currentDir = new CurrentDir(homeDir, listMount); //初期化
            Assert.That(currentDir.Cwd("home0-sub0/sub0-sub0"), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/home0-sub0/sub0-sub0"));

            currentDir = new CurrentDir(homeDir, listMount); //初期化
            Assert.That(currentDir.Cwd("home0-sub0/sub0-sub0"), Is.EqualTo(true));
            Assert.That(currentDir.Cwd(".."), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/home0-sub0"));

            //ホームディレクトリより階層上へは移動できない
            currentDir = new CurrentDir(homeDir, listMount); //初期化
            Assert.That(currentDir.Cwd("home0-sub0/sub0-sub0"), Is.EqualTo(true));
            Assert.That(currentDir.Cwd(".."), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/home0-sub0"));
            Assert.That(currentDir.Cwd(".."), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/"));
            Assert.That(currentDir.Cwd(".."), Is.EqualTo(false));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/"));

            //存在しないディレクトリへの変更
            currentDir = new CurrentDir(homeDir, listMount);
            Assert.That(currentDir.Cwd("home0-sub0/sub0"), Is.EqualTo(false));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/"));

            //初期化文字列の対応
            currentDir = new CurrentDir(homeDir + "\\", listMount);
            Assert.That(currentDir.Cwd("home0-sub0"), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/home0-sub0"));

            //ファイル一覧の取得
            currentDir = new CurrentDir(homeDir, listMount);
            var ar = new List <string> {
                "d home0-sub0",
                "d home0-sub1",
                "d home0-sub2",
                "- home0-1.txt",
                "- home0-2.txt",
                "- home0-3.txt"
            };

            Assert.That(confirm(currentDir, "*.*", ar), Is.EqualTo(true));

            //ファイル一覧の取得
            currentDir = new CurrentDir(homeDir, listMount);
            Assert.That(currentDir.Cwd("home0-sub0"), Is.EqualTo(true));
            ar.Clear();
            ar.Add("- home0-sub0-1.txt");
            ar.Add("- home0-sub0-2.txt");
            ar.Add("- home0-sub0-3.txt");
            Assert.That(confirm(currentDir, "*.txt", ar), Is.EqualTo(true));

            //**************************************************
            //仮想フォルダを追加して試験する
            //**************************************************
            var fromFolder = string.Format("{0}\\home2", rootDirectory);
            var toFolder   = string.Format("{0}\\home0", rootDirectory);

            listMount.Add(fromFolder, toFolder);

            //ファイル一覧の取得
            currentDir = new CurrentDir(homeDir, listMount);

            ar.Clear();
            ar.Add("d home0-sub0");
            ar.Add("d home0-sub1");
            ar.Add("d home0-sub2");
            ar.Add("d home2");
            ar.Add("- home0-1.txt");
            ar.Add("- home0-2.txt");
            ar.Add("- home0-3.txt");
            Assert.That(confirm(currentDir, "*.*", ar), Is.EqualTo(true));
            Assert.That(currentDir.Cwd("home2"), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/home2"));
            Assert.That(currentDir.Cwd("home2-sub0"), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/home2/home2-sub0"));
            Assert.That(currentDir.Cwd(".."), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/home2"));
            Assert.That(currentDir.Cwd(".."), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/"));

            Assert.That(currentDir.Cwd("home2/home2-sub0"), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/home2/home2-sub0"));
            Assert.That(currentDir.Cwd("../../.."), Is.EqualTo(false));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/home2/home2-sub0"));
            Assert.That(currentDir.Cwd("../.."), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/"));

            //**************************************************
            ////仮想フォルダを追加して試験する
            //**************************************************
            fromFolder = workDir + "\\FtpTestDir2\\tmp";
            toFolder   = string.Format("{0}\\home0", rootDirectory);
            listMount.Add(fromFolder, toFolder);

            //ファイル一覧の取得
            currentDir = new CurrentDir(homeDir, listMount);
            ar.Clear();
            ar.Add("d home0-sub0");
            ar.Add("d home0-sub1");
            ar.Add("d home0-sub2");
            ar.Add("d home2");
            ar.Add("d tmp");
            ar.Add("- home0-1.txt");
            ar.Add("- home0-2.txt");
            ar.Add("- home0-3.txt");
            Assert.That(confirm(currentDir, "*.*", ar), Is.EqualTo(true));
            Assert.That(currentDir.Cwd("tmp"), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/tmp"));
            Assert.That(currentDir.Cwd("sub"), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/tmp/sub"));
            Assert.That(currentDir.Cwd(".."), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/tmp"));
            Assert.That(currentDir.Cwd(".."), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/"));

            Assert.That(currentDir.Cwd("tmp/sub"), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/tmp/sub"));
            Assert.That(currentDir.Cwd("../../.."), Is.EqualTo(false));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/tmp/sub"));
            Assert.That(currentDir.Cwd("../.."), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/"));
        }
コード例 #4
0
ファイル: CurrentDirTest.cs プロジェクト: jsakamoto/bjd5
        public void ContentTypeTest()
        {
            //....\\FtpServerTest\\TestDir
            var startup = Directory.GetCurrentDirectory();
            var path1 = Path.GetDirectoryName(startup);
            var path2 = Path.GetDirectoryName(path1);
            var dir = Path.GetDirectoryName(path2);
            //dir = c:\tmp2\bjd5
            //var dir = new File(".").getAbsoluteFile().getParentFile().getParent(); //c:\dev\bjd6

            var workDir = dir + "\\work";
            var rootDirectory = workDir + "\\FtpTestDir";

            var listMount = new ListMount(null);

            //var op  = new Option(kernel, "", "Ftp");
            var homeDir = string.Format("{0}\\home0", rootDirectory);

            //ディレクトリ変更 と表示テキスト
            var currentDir = new CurrentDir(homeDir, listMount); //初期化

            Assert.That(currentDir.Cwd("home0-sub0"), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/home0-sub0"));

            currentDir = new CurrentDir(homeDir, listMount); //初期化
            Assert.That(currentDir.Cwd("home0-sub0/sub0-sub0"),Is.EqualTo( true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/home0-sub0/sub0-sub0"));

            currentDir = new CurrentDir(homeDir, listMount); //初期化
            Assert.That(currentDir.Cwd("home0-sub0/sub0-sub0"),Is.EqualTo( true));
            Assert.That(currentDir.Cwd(".."),Is.EqualTo( true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/home0-sub0"));

            //ホームディレクトリより階層上へは移動できない
            currentDir = new CurrentDir(homeDir, listMount); //初期化
            Assert.That(currentDir.Cwd("home0-sub0/sub0-sub0"), Is.EqualTo(true));
            Assert.That(currentDir.Cwd(".."), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(),Is.EqualTo( "/home0-sub0"));
            Assert.That(currentDir.Cwd(".."), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(),Is.EqualTo( "/"));
            Assert.That(currentDir.Cwd(".."),Is.EqualTo( false));
            Assert.That(currentDir.GetPwd(),Is.EqualTo( "/"));

            //存在しないディレクトリへの変更
            currentDir = new CurrentDir(homeDir, listMount);
            Assert.That(currentDir.Cwd("home0-sub0/sub0"),Is.EqualTo( false));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/"));

            //初期化文字列の対応
            currentDir = new CurrentDir(homeDir + "\\", listMount);
            Assert.That(currentDir.Cwd("home0-sub0"), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(),Is.EqualTo( "/home0-sub0"));

            //ファイル一覧の取得
            currentDir = new CurrentDir(homeDir, listMount);
            var ar = new List<string>{
                "d home0-sub0",
                "d home0-sub1",
                "d home0-sub2",
                "- home0-1.txt",
                "- home0-2.txt",
                "- home0-3.txt"
            };
            Assert.That(confirm(currentDir, "*.*", ar), Is.EqualTo(true));

            //ファイル一覧の取得
            currentDir = new CurrentDir(homeDir, listMount);
            Assert.That(currentDir.Cwd("home0-sub0"), Is.EqualTo(true));
            ar.Clear();
            ar.Add("- home0-sub0-1.txt");
            ar.Add("- home0-sub0-2.txt");
            ar.Add("- home0-sub0-3.txt");
            Assert.That(confirm(currentDir, "*.txt", ar), Is.EqualTo(true));

            //**************************************************
            //仮想フォルダを追加して試験する
            //**************************************************
            var fromFolder = string.Format("{0}\\home2", rootDirectory);
            var toFolder = string.Format("{0}\\home0", rootDirectory);
            listMount.Add(fromFolder, toFolder);

            //ファイル一覧の取得
            currentDir = new CurrentDir(homeDir, listMount);

            ar.Clear();
            ar.Add("d home0-sub0");
            ar.Add("d home0-sub1");
            ar.Add("d home0-sub2");
            ar.Add("d home2");
            ar.Add("- home0-1.txt");
            ar.Add("- home0-2.txt");
            ar.Add("- home0-3.txt");
            Assert.That(confirm(currentDir, "*.*", ar), Is.EqualTo(true));
            Assert.That(currentDir.Cwd("home2"), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/home2"));
            Assert.That(currentDir.Cwd("home2-sub0"),Is.EqualTo( true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/home2/home2-sub0"));
            Assert.That(currentDir.Cwd(".."), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/home2"));
            Assert.That(currentDir.Cwd(".."), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/"));

            Assert.That(currentDir.Cwd("home2/home2-sub0"), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/home2/home2-sub0"));
            Assert.That(currentDir.Cwd("../../.."), Is.EqualTo(false));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/home2/home2-sub0"));
            Assert.That(currentDir.Cwd("../.."), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/"));

            //**************************************************
            ////仮想フォルダを追加して試験する
            //**************************************************
            fromFolder = workDir + "\\FtpTestDir2\\tmp";
            toFolder = string.Format("{0}\\home0", rootDirectory);
            listMount.Add(fromFolder, toFolder);

            //ファイル一覧の取得
            currentDir = new CurrentDir(homeDir, listMount);
            ar.Clear();
            ar.Add("d home0-sub0");
            ar.Add("d home0-sub1");
            ar.Add("d home0-sub2");
            ar.Add("d home2");
            ar.Add("d tmp");
            ar.Add("- home0-1.txt");
            ar.Add("- home0-2.txt");
            ar.Add("- home0-3.txt");
            Assert.That(confirm(currentDir, "*.*", ar), Is.EqualTo(true));
            Assert.That(currentDir.Cwd("tmp"), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/tmp"));
            Assert.That(currentDir.Cwd("sub"), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/tmp/sub"));
            Assert.That(currentDir.Cwd(".."), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/tmp"));
            Assert.That(currentDir.Cwd(".."), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/"));

            Assert.That(currentDir.Cwd("tmp/sub"), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/tmp/sub"));
            Assert.That(currentDir.Cwd("../../.."), Is.EqualTo(false));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/tmp/sub"));
            Assert.That(currentDir.Cwd("../.."), Is.EqualTo(true));
            Assert.That(currentDir.GetPwd(), Is.EqualTo("/"));
        }