玩转C科技.NET

从学会做人开始认识这个世界!http://volnet.github.io

导航

【代码保留】WebService发布本地磁盘信息

今天有人问到如何在服务器A的WebApplication中访问服务器B的磁盘信息(文件Server)。

方案很多啦:

FTP协议访问、WebService发布磁盘信息、WCF构建等……

随手就写了WebService的Demo,蛮放着……

(未处理的东西多啦,特别是安全性的地方……)

///////////////////////code///////////////////////////////////////////////////

using System.ComponentModel;
using System.Web.Services;
using System.IO;
using System;

namespace WebServiceFileDirectory
{
    /// <summary>
    /// Summary description for Service1
    /// </summary>
    [WebService(Namespace = "http://volnet.cnblogs.com/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
    // [System.Web.Script.Services.ScriptService]
    public class ServiceFileDirectory : System.Web.Services.WebService
    {
        private static readonly string path = System.Configuration.ConfigurationManager.AppSettings["directory"];

        [WebMethod]
        public string[] GetDirectories()
        {
            if (MakeSurePath() == true)
            {
                return Directory.GetDirectories(path);
            }
            return null;
        }

        [WebMethod]
        public string[] GetFiles()
        {
            if (MakeSurePath() == true)
            {
                return Directory.GetFiles(path);
            }
            return null;
        }

        private bool? isCorrectPath = null;
        /// <summary>
        /// 确保路径正确
        /// </summary>
        /// <returns></returns>
        private bool? MakeSurePath()
        {
            try
            {
                if (isCorrectPath.HasValue == false)
                {
                    if (!Directory.Exists(path))
                    {
                        Directory.CreateDirectory(path);
                    }
                    isCorrectPath = true;
                }
            }
            catch
            {
                isCorrectPath = false;
            }
            finally
            {
            }
            return isCorrectPath;
        }
    }
}

//Tester:

protected void btnGetFiles_Click(object sender, EventArgs e)
{
    FileSystem.ServiceFileDirectory sf = new WebApplicationTester.FileSystem.ServiceFileDirectory();
    string[] files = sf.GetFiles();
    string result= string.Empty;
    foreach (string str in files)
    {
        result += str + "<BR>";
    }
    this.Response.Write(result);
}

posted on 2007-11-27 22:37  volnet(可以叫我大V)  阅读(507)  评论(0编辑  收藏  举报

使用Live Messenger联系我
关闭