私人文件夹上的FileWatcher

时间:2010-07-14 12:06:48

标签: c#

我有一个Windows服务,用于侦听服务器上的文件夹以查找新添加的文件。一旦添加了新文件,服务就会执行一种方法来执行特定的功能。我不希望用户登录到服务器时可以查看或编辑监视文件夹。我希望另一个程序让c#.exe成为唯一能够查看和添加文件的应用程序。是否可以将文件夹隐藏在远离用户的位置,但是可以将其用于应用程序?

4 个答案:

答案 0 :(得分:1)

是的,当然。这是服务器权限问题,您可能会从ServerFault获得更好的响应。

答案 1 :(得分:0)

以下是如何执行此操作的方法:

  1. 创建域帐户MyDomain / MyAccount(或让您的域管理员为您创建一个帐户)
  2. 更改文件夹的权限,以便只有域帐户MyDomain / MyAccount才具有该文件夹的权限。同样,如果您不确定如何执行此操作,请让您的域管理员为您执行此操作。
  3. 在Windows资源管理器中右键单击该文件夹,并选中HIDDEN属性的复选框。
  4. 将Windows服务更改为在MyDomain / MyAccount
  5. 下运行
  6. 停止并重新启动Windows服务。

答案 2 :(得分:0)

Windows中的权限分配给用户,而不是应用程序。您不能授予对应用程序的独占访问权限,仅授予帐户或组。有各种解决方法可能会有所帮助:

  • 仅向服务帐户和应用程序用户授予权限(如果是批处理)。如果多个用户使用该应用程序,则应将所有这些应用程序放在一个组中,并授予该组权限。
  • 将文件夹放在所有应用程序使用的AppData文件夹中以存储数据。文件夹可见时,用户很少访问此文件夹。您可以使用Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)
  • 获取AppData文件夹
  • 您可以在文件夹启动时拥有该文件夹的服务应用程序授予权限,并在文件夹完成时将其撤消。您无法保证管理员不会只是终止服务,而是让所有人都可以访问该文件夹。

你想做什么?可能有一些方法可以在不授予应用程序权限的情况下完成它。

答案 3 :(得分:0)

这似乎对我来说最合适:

•将文件夹放在所有应用程序使用的AppData文件夹中以存储数据。文件夹可见时,用户很少访问此文件夹。您可以使用Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)获取AppData文件夹