- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在从 Delphi 程序写入 Windows 7 中的映射网络驱动器 (P:) 时遇到一些问题。例如,当我尝试 ForceDirectories('P:\test\folder')
时,出现错误(找不到路径)。
我尝试在代码中输入 UNC 路径 (ForceDirectories('\\computername\share\test\folder')
),效果很好。但是,ExpandUNCFileName('P:\')
似乎不起作用;它返回“P:\”。在 Windows XP 上,ExpandUNCFileName('P:\')
返回 UNC 路径。
如何在 Windows 7 上的 Delphi 中获取 UNC 路径,或以其他方式写入映射的网络驱动器?
经过进一步调查,我好像缺少 Windows 中的某种初始化。我有另一个使用 TcxShellComboBox
(DevExpress 组件)的应用程序 (app2)。导航到该组合框中的 P: 后,在 app2 中,对 ExpandUNCFileName
的调用在第一个应用程序中可以正常工作。与 P: 下的文件上的 FileExists
相同,在导航到 app2 中的 P: 之前返回 False,在计算机重新启动后和直到计算机重新启动之前返回 true。
最佳答案
根据Microsoft KB Article ,如果启用了用户帐户控制,并且从 Windows 资源管理器(非提升)映射网络驱动器,则提升的程序将无法访问该驱动器。引用:
If a user is logged on to Windows Vista or to Windows 7, and if User Account Control is enabled, a program that uses the user’s filtered access token and a program that uses the user’s full administrator access token can run at the same time. Because LSA created the access tokens during two separate logon sessions, the access tokens contain separate logon IDs.
When network shares are mapped, they are linked to the current logon session for the current process access token. This means that, if a user uses the command prompt (Cmd.exe) together with the filtered access token to map a network share, the network share is not mapped for processes that run with the full administrator access token.
由于您在评论中提到您“以管理员身份”(提升)运行 Delphi,所以这是您的问题。
解决方案:
如果不需要,请不要运行 Delphi 提升版本。如果您确实需要在软件中进行提升,请将其分为两部分(提升的和非提升的),并从第一部分访问映射的网络驱动器。然后使用提升的 COM 对象或简单地通过执行单独的可执行文件来访问另一部分。
从提升的网络提示符映射网络驱动器,以便提升的用户可以使用映射的网络驱动器:
a.打开提升的命令提示符(以管理员身份运行“cmd.exe”)
b.输入net use p:\\computername\share\test\folder
关于delphi - 为什么我的程序无法识别映射的 UNC 路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7673958/
好吧,我已经在这个问题上挣扎了很长时间了。我有一个项目来比较两个文件夹,两台服务器各一个。我们正在将源服务器上的文件与目标服务器上的文件进行比较,并将创建一个源文件列表,一旦目标服务器上完成更新,就需
我有一个 UNC 路径 \\houtester\common\log library\graphics 我需要在我的 c# 程序中使用它,显然它不会不会因为那个空白空间。我怎样才能让这条路起作用? 谢
我有一个 C# 进程需要读取远程服务器共享目录中的文件。 以下代码导致“共享不存在”。正在写入控制台。 string fileName = "someFile.ars"; string fileLoc
我的电脑装有 Windows XP,但没有互联网连接,只能访问网络驱动器。我想在网络驱动器上设置一个 git 存储库,然后从我的本地存储库推送到它,这样我就可以在一天结束时去一台有互联网连接的计算机并
是否有用于从 UNC 路径确定 NAS 存储上的可用空间的编程 API?我查看了 WMI 文档,并不清楚这是可能的。 非常感谢代码示例和对相关 API 调用的引用。 最佳答案 在 Windows AP
这是我遇到的问题: # The following line works Add-Content -LiteralPath "$Env:USERPROFILE\Desktop\[Test].txt"
我在从 Delphi 程序写入 Windows 7 中的映射网络驱动器 (P:) 时遇到一些问题。例如,当我尝试 ForceDirectories('P:\test\folder') 时,出现错误(找
我在为 Outlook 编写的 VSTO 加载项中有以下代码: savefolder = Regex.Replace(Guid.NewGuid().ToString(), @"[- ]
我正在尝试从 UNC 路径名的根获取文件夹和文件。我正在使用 Get-ChildItem。 我可以通过 UNC 路径从子文件夹获取结果,但不能从根文件夹获取结果。如果从命令行运行命令Get-Child
如果用户尚未安装远程驱动器并且仅使用 \\ 语法,如何将字符串中保存的此类路径 (\\nas) 转换为Java 中的文件,抱歉不太确定您如何称呼此 \\ 命名。 这个也是windows特有的吗,也可以
我们有似乎运行良好的批处理脚本,但是我正在编辑其中一个脚本以包含一些新工作,并且在手动运行脚本时(通过在 Windows 资源管理器中双击),每次在脚本中执行 pushd 命令时,我都会收到上述错误消
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
我正在编写一个应用程序,需要从当前正在执行文件的网络目录中复制文件。 我试过用打开文件 using (var source = new FileStream(fileData.FileName,
我正在尝试使用以下代码检索一个目录的文件列表: string[] files = System.IO.Directory.GetFiles(source); 如果我尝试从本地目录检索它们,假设是 C:
我看到了很多示例,但我没有找到适合我的问题的东西。 这个问题是:我有一个用 C# 编写的程序。我使用的是 clickonce UNC 系统。 有了桌面上的快捷方式,就没有问题了。 但我想要针对特定
我正在研究一种在同一台远程机器上复制大文件的高效解决方案,我们称它为 FILESERVER。然后,我想从另一台服务器 (WEBSERVER) 远程发布这些文件的副本,所以我尝试使用 Windows 资
可能听起来很疯狂,但我想将一些 javadoc 文档链接到网络上存在的文件。这是从标准 UNC 路径访问的。 我想使用如下方式链接: /** * This class does something
同题;如何访问 ShareFolder 中的 UNC 位置? URL uri = new URL("file:\\\\x.x.1.10\\myUNC"); File file = new File(u
我正在寻找一种从映射网络驱动器获取“真实”UNC 路径的方法——这是一个常见问题,但没有使用我想要的语言或方法。 我希望用户能够使用 HTML 表单选择文件,但不能上传它(文件很大)。我只想获得文件的
我正在从我的程序(用 C++ 编写)连接到一个 unc 服务器 (\blablub\share)。现在我正在使用 WNetUseConnection 函数连接到服务器。现在我只想限制对程序的访问。因为
我是一名优秀的程序员,十分优秀!