当前位置: 首页 > 面试题库 >

如何检查是否可以在MS XP / Vista的给定目录内创建文件?

云文栋
2023-03-14
问题内容

我有一个代码,可以在用户指定的目录中创建文件。用户可以指向无法创建文件的目录,但是可以重命名该目录。

我已经创建了用于测试目的的目录,我们称之为C:\foo

我具有以下权限C:\foo

  • 遍历目录/执行文件
  • 删除子文件夹和文件
  • 拆下
  • 读取权限
  • 变更权限
  • 取得所有权

我没有以下任何权限C:\foo

  • 完全控制
  • 文件创建
  • 资料夹建立

到目前为止,我已经尝试了以下方法:

os.access('C:\foo', os.W_OK) == True

st = os.stat(’C:\ foo’)
mode = st [stat.ST_MODE]
模式和stat.S_IWRITE == True

我相信这是因为我可以重命名文件夹,所以它对我来说是可变的。但它的内容-不。

有谁知道如果当前用户有权在该目录中创建文件,我该如何编写代码来检查给定目录?

简而言之-我想检查当前用户是否具有给定文件夹名称的 文件创建文件夹创建 权限。

编辑:对此类代码的需求来自“ Windows Vista认证”程序的第3个测试用例,其中指出:

  1. 该应用程序必须不允许最低特权用户将任何文件保存到Windows系统目录中,以通过此测试用例。

应该将其理解为“应​​用程序可以尝试将文件保存在Windows系统目录中,但是在发生故障时不应该崩溃吗?”
还是“应用程序必须在尝试保存文件之前执行安全性检查?”

我是否应该仅因为Windows Vista本身不允许最低权限的用户将任何文件保存在%WINDIR%中就停止打扰?


问题答案:

我最近写了一个应用程序,通过了一组测试来从Microsoft获得ISV状态,并且我还添加了该条件。我的理解是,如果用户是Least
Priveledge,那么他将没有权限写入系统文件夹。因此,我按照Ishmaeel的描述解决了这个问题。我尝试创建文件并捕获异常,然后通知用户他无权将文件写入该目录。

以我的理解,特权最低的用户将没有必要的权限来写入这些文件夹,如果他拥有,那么他不是特权最低的用户。

我是否应该仅因为Windows Vista本身不允许最低权限的用户将任何文件保存在%WINDIR%中就停止打扰?

在我看来?是。



 类似资料:
  • 问题内容: 我正在尝试检查给定目录中的特定文件。我不需要代码,但我想修复已有的代码。这个问题的唯一区别是,我正在寻找带有扩展名的文件。 我已经准备好代码:- 但是由于某些原因,它不起作用。我不明白为什么,有人可以在这里找到任何错误吗? 问题答案: 您希望temp.MOD文件位于当前目录(运行应用程序的目录)中,还是希望它位于“目录”文件夹中?在后一种情况下,尝试以这种方式创建文件: 还要检查文件权

  • 问题内容: 我想检查我的Go代码中文件的存在,但是我找不到一种好的方法。 我知道有一种Java中的File方法:如果文件或目录存在,则返回true。 但是如何在Go中完成呢? 问题答案: 编辑以添加错误处理。

  • 问题内容: 如何检查C语言在Linux上是否存在目录? 问题答案: 您可以使用并检查是否失败:

  • 问题内容: 如何使用Python和pywin32或wxPython以最简单的方式区分Windows XP和Windows Vista ? 本质上,如果当前操作系统是Vista,我需要一个将返回True的函数: 问题答案: Python具有可爱的“平台”模块来帮助您。 注意:如注释中所述,使用旧版本的python时可能不会返回正确的值。

  • 问题内容: 如果有和,如何检查用户给出的日期是否在该范围内? 例如 目前日期是字符串,将它们转换为时间戳整数是否有帮助? 问题答案: 使用strtotime将它们转换为时间戳是正确的方法,例如

  • 我想检查一个现有的文件是否在一个特定的目录或子目录中。

  • 问题内容: 如何检查文件目录中是否存在文件? 我正在使用将图像保存到Documents目录中的方法,并且每次启动应用程序时都想加载它。但是,如果没有保存的图像,我将使用默认图像。 但是我只是无法理解如何使用该功能。有人可以举一个使用传递路径参数的函数的例子。 我相信我不需要在其中粘贴任何代码,因为这是一个通用问题。任何帮助都感激不尽。 干杯 问题答案: Swift 4.x 版本 Swift 3.x

  • 本文向大家介绍Node.js 检查文件或目录是否存在,包括了Node.js 检查文件或目录是否存在的使用技巧和注意事项,需要的朋友参考一下 示例 异步地 同步地 在这里,我们必须将函数调用包装在一个try/catch块中以处理错误。