c# 设置和取消文件夹共享及执行Dos命令

        /// <summary>
        /// 设置文件夹共享
        /// </summary>
        /// <param name="FolderPath">文件夹路径</param>
        /// <param name="ShareName">共享名</param>
        /// <param name="Description">共享注释</param>
        /// <returns></returns>
        public static int ShareNetFolder(string FolderPath, string ShareName, string Description)
        {
            try
            {
                ManagementClass managementClass = new ManagementClass("Win32_Share");
                // Create ManagementBaseObjects for in and out parameters
                ManagementBaseObject inParams = managementClass.GetMethodParameters("Create");
                ManagementBaseObject outParams;
                // Set the input parameters
                inParams["Description"] = Description;
                inParams["Name"] = ShareName;
                inParams["Path"] = FolderPath;
                inParams["Type"] = 0x0; // Disk Drive
                outParams = managementClass.InvokeMethod("Create", inParams, null);
                // Check to see if the method invocation was successful
                if ((uint)(outParams.Properties["ReturnValue"].Value) != 0)
                {
                    throw new Exception("Unable to share directory.");
                }
                //设置所有人可读
                DirectorySecurity fSec = new DirectorySecurity();
                fSec.AddAccessRule(new FileSystemAccessRule(@"Everyone", FileSystemRights.FullControl, AccessControlType.Allow));
                System.IO.Directory.SetAccessControl(FolderPath, fSec);
            }
            catch
            {
                return -1;
            }
            return 0;
        }
        /// <summary>
        /// 取消文件夹共享
        /// </summary>
        /// <param name="ShareName">文件夹的共享名</param>
        /// <returns></returns>
        public static int CancelShareNetFolder(string ShareName)
        {
            try
            {
                SelectQuery selectQuery = new SelectQuery("Select * from Win32_Share Where Name = ‘" + ShareName + "‘");
                ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery);
                foreach (ManagementObject mo in searcher.Get())
                {
                    mo.InvokeMethod("Delete", null, null);
                }
            }
            catch
            {
                return -1;
            }
            return 0;
        }

        /// <summary>
        /// 执行Dos命令并返回执行结果,默认2秒内执行完
        ///
        /// net session /delete /y 删除该计算机的所有会话(局域网服务器连接超最大数时刻执行)
        /// 如果是服务器部署了网站,删除会话命令慎用
        /// </summary>
        /// <param name="dosCommand">dos命令</param>
        /// <param name="milliseconds">最大执行秒数</param>
        /// <returns></returns>
        public static string Execute(string dosCommand, int milliseconds=2000)
        {
            string output = "";     //输出字符串
            if (dosCommand != null && dosCommand != "")
            {
                Process process = new Process();     //创建进程对象
                ProcessStartInfo startInfo = new ProcessStartInfo();
                startInfo.FileName = "cmd.exe";      //设定需要执行的命令
                startInfo.Arguments = "/C " + dosCommand;   //设定参数,其中的“/C”表示执行完命令后马上退出
                startInfo.UseShellExecute = false;     //不使用系统外壳程序启动
                startInfo.RedirectStandardInput = false;   //不重定向输入
                startInfo.RedirectStandardOutput = true;   //重定向输出
                startInfo.CreateNoWindow = true;     //不创建窗口
                process.StartInfo = startInfo;
                try
                {
                    if (process.Start())       //开始进程
                    {
                        if (milliseconds == 0)
                            process.WaitForExit();     //这里无限等待进程结束
                        else
                            process.WaitForExit(milliseconds);  //这里等待进程结束,等待时间为指定的毫秒
                        output = process.StandardOutput.ReadToEnd();//读取进程的输出
                    }
                }
                catch { }
                finally
                {
                    if (process != null)
                        process.Close();
                }
            }
            return output;
        }
时间: 2024-10-06 18:52:37

c# 设置和取消文件夹共享及执行Dos命令的相关文章

局域网设置文件夹 共享和取消文件夹共享 经测试 没问题

一.添加文件共享 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 二.取消文件共享 1.控制面板 2. 3. 4.

如何快速取消所有文件夹共享?进来瞧瞧

原文:如何快速取消所有文件夹共享?进来瞧瞧 快速取消所有文件夹共享: 把文件夹共享给别人但忘记取消,想取消共享但找不到那个文件夹了,怎么办? 双击这个工具,可清除所有共享. strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\r

WIN7中如何设置文件夹共享

通常,在局域网内共享文件是非常有用的,也是一种非常好的共享资源和传送文件的方式.下面我将跟大家分享一下win7系统中局域网内共享文件夹的办法: 第一步.共享文件夹的设置,找到我们需要共享的文件夹,然后右击->属性,打开如下对话框: 打开共享选项,出现如下对话框: 在这里,我们选择Everyone角色,点击添加,并为Everyone角色设置权限,读取或者读/写权限,如图所示: 点击共享,然后回到属性对话框,我们再次选择高级共享,打开如下对话框,选择共享此文件夹: 第二步.网络的设置:打开网络和共享

Linux设置文件夹共享

linux环境实现文件夹共享,常用的方法就是安装Samba,以下就是实现文件夹共享的步骤: 一.安装Samba yum -y install samba samba-client samba-common 二.修改Samba配置文件 1.配置内核参数 ulimit -n 16384 vi /etc/security/limits.conf 在最后加入以下内容 * - nofile 16384 tips: 这主要是避免在启动Samba时出现以下警告信息: rlimit_max: increasin

解决WIN7与虚拟机CentOS的文件夹共享问题

一.系统与软件 WIN7 64bit.VirtualBox 5.0.14.CentOS 6.5.SecureCRT 7.2.3 二.使用文件夹共享需要安装增强功能,但是安装时无法读取光盘iso文件 三.为了方便操作,配置静态IP,并使用CRT连接上去(参考http://my.oschina.net/allman90/blog/294847?fromerr=CotpElUe) [[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcf

VMware中linux与window文件夹共享

在虚拟机下来实现在windows下共享一个文件夹: (前提已安装完成vmtools:http://blog.csdn.net/pipisorry/article/details/21318931) 打开VMware->工具栏->虚拟机->选择 设置->选项 共享文件夹 点添加,按提示来添加一个windows下的文件夹.在/mnt/hgfs下就是你在windows下共享的文件夹了 不行的话直接将文件(夹)从linux拖曳到windows桌面上(文件夹中不能包含快捷方式) 两台wind

freebsd 与win7进行文件夹共享

以前用的是ubuntu ,系统安装好之后,再装个vmware tools 就可以设置文件夹共享,进入/mnt/hgfs 找到共享文件夹 现在工作要用到freebsd ,要装vmware tools确实麻烦,试了几次都没有成功过,找了一下其他方法共享. http://blog.chinaunix.net/uid-22914802-id-1765557.html 用安装任何其他软件.直接用命令 mount_smbfs -I windowsip //[email protected]/共享文件夹 /m

server 2008 文件夹共享用户名密码,及用户对应文件夹权限划分

最近遇到的一个奇葩的问题服务器文件夹共享,虽然之前已经设置好,有先例,但是这里还是要提一下,一来巩固自己对这块的认知,二来,为以后查找方便:服务器server 2008 设置用户登陆共享文件夹:新建立文件demo,作为共享的母文件夹:(未遇到问题"坑"可不看)建立共享步骤:第一步:右键文件夹(demo属性)-->共享--↓共享:这里可以直接设置添加指定的账户账户访问此文件夹账户问题:添加账户: 首先打开[运行]程序: 运行中输入'CMD': 然后在上面输入'compmgmt.ms

软件分享:比FTP,Windows共享更易用的局域网文件夹共享方式

说到局域网文件夹共享工具,很多人就会自动联想到Windows文件共享,FTP共享.不过这两种文件夹共享方式已经差不多是半个世纪前的产物了,按照工龄,也该到了退休的节点.比较尴尬的是,即使很多FTP工具一直在不停迭代更新,但终究逃不过被替换. 市场竞争愈演愈烈,企业各部门的文档管理需求也越来越高,特别对于中大型企业来说,仅实现共享是远远不够的,存储安全.禁止下载等更细致的权限设置,外发安全,以及文档的在线编辑协作等慢慢成为刚需.企业云盘不仅延续了个人云盘文件共享的DNA,并在此的基础上加入更丰富的