C#设置共享权限真的很难?

大_爱 2013-04-25 12:24:46
想用C#代码把共享文件夹的权限设置为everyone可读写。

这个用C#真的很难吗?

C#真的不怎么样啊。
...全文
432 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
语言只是工具,实现方式还要使用人的方式和方法咯。 你觉得很难? C#->文件夹权 不可行 不可行 我来看呢 C#->dos命令->文件夹权限 可行 另外:你觉得C#没有那种 大喊一声:"把文件夹权限设置成everyone可读写"的功能就是所谓的不怎么样了,我觉得你很有必要停止编程,去反思自己为什么要去学编程了。
  • 打赏
  • 举报
回复
引用 10 楼 beefcattlexiaoyang 的回复:
引用 1 楼 nice_fish 的回复:语言只是工具,实现方式还要使用人的方式和方法咯。 你觉得很难? C#->文件夹权 不可行 不可行 我来看呢 C#->dos命令->文件夹权限 可行 另外:你觉得C#没有那种 大喊一声:"把文件夹权限设置成everyone可读写"的功能就是所谓的不怎么样了,我觉得你很有必要停止编程,去反思自己为什么要去学编程了……
感谢你的分享
大_爱 2013-04-25
  • 打赏
  • 举报
回复
引用 12 楼 foxd 的回复:
帮你顶一下。
多谢,刚刚结贴
大_爱 2013-04-25
  • 打赏
  • 举报
回复
最后感谢大家,结贴了。
大_爱 2013-04-25
  • 打赏
  • 举报
回复
引用 1 楼 nice_fish 的回复:
语言只是工具,实现方式还要使用人的方式和方法咯。 你觉得很难? C#->文件夹权 不可行 不可行 我来看呢 C#->dos命令->文件夹权限 可行 另外:你觉得C#没有那种 大喊一声:"把文件夹权限设置成everyone可读写"的功能就是所谓的不怎么样了,我觉得你很有必要停止编程,去反思自己为什么要去学编程了。
再次感谢这位仁兄,也不一定非要使用,代码来实现,调用dos能实现那也就实现了。 现在说说我测试的过程吧 4、后来查询到net share这个命令可以设置权限,于是我在cmd中测试, 测试结果是,拒绝访问,妈的,我的电脑还拒绝访问,哥真的很生气。 其实是要用管理员账户运行的。 我是在管理员组下面,但是不知道为什么就是不行。于是我找到cmd的程序,以管理员的权限运行,果然成了 net share TestShare=G:\TestShare /grant:everyone,full 说明一下,TestShare 共享名字,= 后面是路径,后面有一些描述,和缓存之类的,我不需要,我就没写了,就把权限写了 指定,所有人 完全控制。 最后,将这个命令,用C#添加进去,这个就很简单了。 当然这个也是要管理员运行的。
大_爱 2013-04-25
  • 打赏
  • 举报
回复
引用 8 楼 zhengceHH 的回复:
C# code?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172/* * Created by SharpDevelop. * User: Admini……
感谢,我之前也是这样做的。但是这样做有两个问题, 第一个、程序必须要以管理员的权限运行才能成功, 第二个,共享出来的文件不是所有人都有权限。 我等会把我的解决方法,贴上来吧。
喂大的程序员 2013-04-25
  • 打赏
  • 举报
回复
/*
 * Created by SharpDevelop.
 * User: Administrator
 * Date: 2007/07/03
 * Time: 14:02
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.Management;

namespace Share
{
	/// <summary>
	/// Description of MainForm.
	/// </summary>
	public partial class MainForm
	{
		[STAThread]
		public static void Main(string[] args)
		{
			Application.EnableVisualStyles();
			Application.SetCompatibleTextRenderingDefault(false);
			Application.Run(new MainForm());
		}
		
		public MainForm()
		{
			//
			// The InitializeComponent() call is required for Windows Forms designer support.
			//
			InitializeComponent();
			
			//
			// TODO: Add constructor code after the InitializeComponent() call.
			//
		}
		
		void Button1Click(object sender, System.EventArgs e)
		{
			shareFolder("d:\\","D","Description");
		}
				
		 private void shareFolder(string FolderPath, string ShareName, string Description)
       	 {// 创建共享目录		 	
            	try
            	{
                		ManagementClass managementClass = new ManagementClass("Win32_Share");
                		ManagementBaseObject inParams = managementClass.GetMethodParameters("Create");
                		ManagementBaseObject outParams;
                		inParams["Description"] = Description;
                		inParams["Name"] = ShareName;
               		inParams["Path"] = FolderPath;
                		inParams["Type"] = 0x0;
                        outParams = managementClass.InvokeMethod("Create", inParams, null);

                		if ((uint)(outParams.Properties["ReturnValue"].Value) != 0)
                		{
                    		throw new Exception("Unable to share directory.");
               		 }
            	 }
            	catch
           	      {
                		return ;
           	      }
             }
	}
}
程序
大_爱 2013-04-25
  • 打赏
  • 举报
回复
引用 6 楼 weizhuangwen 的回复:
对着电脑大喊三声:“xxxx文件夹共享!!xxxx文件夹共享!....”
去,不要添乱。
weizhuangwen 2013-04-25
  • 打赏
  • 举报
回复
对着电脑大喊三声:“xxxx文件夹共享!!xxxx文件夹共享!....”
大_爱 2013-04-25
  • 打赏
  • 举报
回复
引用 4 楼 nice_fish 的回复:
引用命令空间:using System.Security.AccessControl; C# code?1234string path = "mytest";DirectorySecurity ds = new DirectorySecurity();ds.AddAccessRule(new FileSystemAccessRule("everyone", FileSy……
我之前也试过这个,貌似也没啥用。, 我在网上问,他们说 你的代码操作的是操作权限,而不是共享权限。
  • 打赏
  • 举报
回复
引用命令空间:using System.Security.AccessControl;

string path = "mytest";
DirectorySecurity ds = new DirectorySecurity();
ds.AddAccessRule(new FileSystemAccessRule("everyone", FileSystemRights.ReadAndExecute | FileSystemRights.Write, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow));
System.IO.Directory.SetAccessControl(path, ds);
大_爱 2013-04-25
  • 打赏
  • 举报
回复
亲,帮忙想想怎么办吧
大_爱 2013-04-25
  • 打赏
  • 举报
回复
引用 1 楼 nice_fish 的回复:
语言只是工具,实现方式还要使用人的方式和方法咯。 你觉得很难? C#->文件夹权 不可行 不可行 我来看呢 C#->dos命令->文件夹权限 可行 另外:你觉得C#没有那种 大喊一声:"把文件夹权限设置成everyone可读写"的功能就是所谓的不怎么样了,我觉得你很有必要停止编程,去反思自己为什么要去学编程了。
dos这种方式,个人不是太喜欢, 我知道C#没有自己的功能,但也应该提供一些类库吧。 你说在windows上用什么开发最方便,自然是C#,我没选择C++,没选择java, 自然也是出于对工具的考虑。 不单单是设置共享权限,不方便,个人感觉其他很多地方都不是太方便,当然也有可能是本身对C#不太熟悉。 如果有其他好的方式,和工具,肯定选最好的,这个是没什么说的。

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧