Skip to main content
September 25, 2008
Question

Listing files on FMS server @ client

  • September 25, 2008
  • 1 reply
  • 350 views
Hi Everybody!
I want to show list of FLV files placed on FMS server. do u guys have any sample code for that. Looking forward for reply! thanks.
    This topic has been closed for replies.

    1 reply

    September 25, 2008
    Amitpal,
    Here is a server side class that list files in 3 ways.

    getFiles just returns the content of the folder specifiec.

    showFileList returns the content of a folder listing it's sub-folders and content as an object.

    listFiles just returns the recursive sort of the folder.

    function FileManager()
    {
    trace("#FileManager# constructor");

    }
    FileManager.prototype.getFiles = function(p_client, p_path)
    {
    trace("getFiles Called");
    trace(p_path)
    var fileList = new File(p_path);
    var temp = fileList.list();
    return temp;
    }
    FileManager.prototype.showFileList = function(p_client, p_path)
    {
    this.fileList = {folders:"", files:""};
    this.folders = new Array();
    this.files = new Array();
    this.listFiles(p_path, true);
    //for(j=0; j<this.fileList.length; j++){
    // trace(this.fileList);
    //}
    this.fileList.folders = this.folders;
    this.fileList.files = this.files;
    return this.fileList;
    }
    FileManager.prototype.listFiles = function(path, listsub)
    {
    var curFolder = new File(path);
    var files = curFolder.list();

    for (var f=0; f < files.length; f++) {
    if (files.isDirectory && listsub == true) {
    this.folders.push(files.name)
    //this.listFiles(files.name, true);
    } else {
    this.files.push(files.name);
    }
    }

    }

    // main.asc file
    load("FileManager.asc");
    application.onAppStart = function()
    {
    this.fileManager = new FileManager();
    }
    // FileManager Call *from Peldi
    Client.prototype.fileManagerCall = function(p_method)
    {
    var fileMgr = application.fileManager;
    if (fileMgr[p_method] == undefined) {
    trace("ERROR: this.fileManager." + p_method + " method not found");
    return false;
    } else {
    var params = new Array();
    params.push(this);
    for (var i=1; i<arguments.length; i++)
    params =arguments;
    var res = fileMgr[p_method].apply(fileMgr, params);
    return res;
    }
    }

    //client side
    // onConnect event handler for NetConneciton
    public function onConnect(evt:Object)
    {
    __nc["Application"] = this;
    var resultObject = new Object();
    resultObject["owner"] = this;
    resultObject.onResult = function(returnValue){
    //set client side object
    this.owner.__fileList:Object = {};
    this.owner.__fileList = returnValue;
    this.owner.dispatchEvent({type:"connectSuccess", nc:this.owner.__nc});
    }
    // Call fms passing the video folder as a path
    __nc.call("fileManagerCall", resultObject, "showFileList", "folderOfVideos");
    }
    // a setter method to store the fileList
    public function set fileList(p_list):Void
    {
    __fileList = p_list;
    var foldArr = [];
    for (var i = 0; i<__fileList["folders"].length; i++) {
    foldArr.push(getFolder(__fileList["folders"] ));
    }
    this.lessonArray = foldArr;
    var vidArr = [];
    for (var j = 0; j<__fileList["files"].length; j++) {
    vidArr.push(getFile(__fileList["files"]));
    }
    this.videoArray = vidArr;
    }
    // helper methods
    private function getFolder(p_folder):Object
    {
    trace(p_folder)
    var foldObj = {label:"", data:""};
    var filePath = p_folder.substr((p_folder).lastIndexOf("/")+1);
    foldObj.label = filePath;
    foldObj.data = p_folder;
    return foldObj;
    }
    private function getFile(p_file):Object
    {
    var vidObj = {label:"", data:""};
    var vidFilePath = p_file.substr((p_file).lastIndexOf("/")+1);
    var vidFile = vidFilePath.substr(0, vidFilePath.indexOf("."));
    vidObj.label = vidFile;
    vidObj.data = vidFile;
    return vidObj;
    }

    Hope this helps...

    Shack