• wpf远程共享文件夹设置


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    using System.Diagnostics;
    using System.Management;
    using System.IO;
    using System.Security.AccessControl;
    
    namespace WpfApplication1
    {
        /// <summary>
        /// Window1.xaml 的交互逻辑
        /// </summary>
        public partial class Window1 : Window
        {
            public Window1()
            {
                InitializeComponent();
            }
            string gxDir = @"D:\杨磊";
            //盘符映射
            public string ConnectLan(string dx)
            {
                System.Diagnostics.Process _Process = new System.Diagnostics.Process();
                _Process.StartInfo.FileName = "cmd.exe";
                _Process.StartInfo.UseShellExecute = false;
                _Process.StartInfo.RedirectStandardInput = true;
                _Process.StartInfo.RedirectStandardOutput = true;
                _Process.StartInfo.CreateNoWindow = true;
                _Process.Start();
                _Process.StandardInput.WriteLine(dx);
                _Process.StandardInput.WriteLine("exit");
                _Process.WaitForExit();
                string _ReturnText = _Process.StandardOutput.ReadToEnd();// 得到cmd.exe的输出  
                _Process.Close();
                return _ReturnText;
            }
            //设置文件夹共享
            public static void ShareDirectory(string path, string ShareName, string Description)
            {
                ManagementClass _class = new ManagementClass(new ManagementPath("Win32_Share"));
                object[] obj = { path, ShareName, 0, null, Description };
                _class.InvokeMethod("Create", obj);
            }
            //设置Everyone权限
            public void SetAccessRole()
            {
                DirectoryInfo dInfo = new DirectoryInfo(gxDir);
                DirectorySecurity dSecurity = dInfo.GetAccessControl();
                InheritanceFlags iFlags = new InheritanceFlags();
                iFlags = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit;
                FileSystemRights Rights = new FileSystemRights();
                Rights = FileSystemRights.ReadData;
                FileSystemAccessRule AccessRule2 = new FileSystemAccessRule("Everyone", Rights, iFlags, PropagationFlags.None, AccessControlType.Allow);
                bool ok = false;
                dSecurity.ModifyAccessRule(AccessControlModification.Add, AccessRule2, out ok);
                dInfo.SetAccessControl(dSecurity);
            }
            //获取映射盘符里面的文件
            private void button3_Click(object sender, RoutedEventArgs e)
            {
                if (!System.IO.Directory.Exists(gxDir))
                {
                    Directory.CreateDirectory(gxDir);
                }
                //设置共享文件夹
                ShareDirectory(gxDir,"杨磊","yanglei");
                //设置共享文件夹Everyone权限
                SetAccessRole();
                //盘符映射
                ConnectLan(@"net use l: \\192.168.0.152\ssss");//L:建立到本地的盘符,\\192.168.0.152\ssss共享文件夹路径
                //建立树结构
                DirectoryInfo _Direct = new DirectoryInfo(@"z:\");
                TreeViewItem tvt = new TreeViewItem();
                tvt.Header = "l:";
                tvt.IsExpanded = true;
                tr1.Items.Add(tvt);
                //递归获取映射盘符里面所有文件
                getDir("l:\\", tvt);
                //删除映射关系
                ConnectLan("net use l: /del");
            }
            //递归获取映射盘符里面所有文件
            public void getDir(string path, TreeViewItem tvt)
            {
                DirectoryInfo dir = new DirectoryInfo(path);
                //循环获取文件夹
                foreach (DirectoryInfo DirItem in dir.GetDirectories())
                {
                    TreeViewItem tvt2 = new TreeViewItem();
                    tvt2.Header = DirItem.Name;
                    tvt2.IsExpanded = true;
                    tvt.Items.Add(tvt2);
    
    
                    string aa = DirItem.FullName.Substring(3);
                    string bendi = gxDir + aa;
                    if (!System.IO.Directory.Exists(bendi))
                    {
                        Directory.CreateDirectory(bendi);
                    }
                    getDir(DirItem.FullName, tvt2);
                }
                //循环获取文件
                foreach (FileInfo FileItem in dir.GetFiles())
                {
                    TreeViewItem tvt1 = new TreeViewItem();
                    tvt1.Header = FileItem.Name;
                    tvt1.IsExpanded = true;
                    tvt.Items.Add(tvt1);
    
                    if (!System.IO.File.Exists(gxDir + FileItem.FullName.Substring(3)))
                    {
                        FileStream fs = File.Create(gxDir + FileItem.FullName.Substring(3));
                        fs.Flush();
                        fs.Close();
                    }
                }
            }
        }
    }
    win7上面要用Administrator登陆才行
  • 相关阅读:
    git push时提示"fatal: The current branch master has no..."
    git push时提示"Everything up-to-date"
    图解vim常用命令
    总结下git中一些常用命令
    SVN服务端的版本对比及创建仓库时的注意事项
    bootstrap字体图标不正常显示的原因
    bigdata_Hadoop jps出现process information unavailable提示解决办法
    bigdata_批量机器执行通用脚本
    bigdata_ambari修改hiveserver_metastore链接库(从0.14 升级到1.2.1 )
    bigdata_一篇文看懂Hadoop
  • 原文地址:https://www.cnblogs.com/yangleiWPF/p/1751253.html
Copyright © 2020-2023  润新知