File.Exists() returns Program Files 下的某些文件为 false
File.Exists() returns false for some files under Program Files
我认为这是由于某些权限问题,但事实并非如此。该文件对“用户”具有“读取和执行、读取”权限,对“管理员”和“系统”具有“完全控制”权限。 File.Exists()
returns false
还有其他原因吗?
PS:我认为代码不重要,所以我没有输入代码,但如果这是规则,这里是代码的文本版本。
static void Main(string[] args)
{
var app = @"C:\Program Files(x86)\VideoLAN\VLC\vlc.exe";
var psi = new ProcessStartInfo();
psi.FileName = Path.GetFileName(app);
psi.WorkingDirectory = Path.GetDirectoryName(app);
Process.Start(psi);
}
无论如何,在Visual Studio中似乎有一个奇怪的粘贴路径行为。如果我在文件资源管理器中使用“复制为路径”并将其粘贴到空字符串中,VS 会删除 Files
和 (x86)
之间的 space。
在您的文件系统上,Files
和 (x86)
之间有一个 space。您在用于获取文件的字符串中没有它,因此应将其更改为:
var app = @"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe";
// ^
// need this
就您的陈述而言:
Anyway, there seems to be a weird behaviour of pasting path in Visual Studio. If I use "Copy as path" in File Explorer and paste it into an empty string, VS removes the space between Files
and (x86)
.
这几乎可以肯定是因为自动格式化,这是在粘贴时完成的(尽管你可以禁用它,或者使用 CTRL+Z 来备份,因为它似乎粘贴 then 格式)。
由于您粘贴 "quoted thing"
内部引号以 ""quoted thing""
结束,quoted thing
位现在 外部 引号因此主题自动格式化。
您是否复制了文件名 不带 引号,或者复制了带引号但粘贴到 非引号区域,我怀疑它会未经修改地放入(作为带引号的字符串)。
我认为这是由于某些权限问题,但事实并非如此。该文件对“用户”具有“读取和执行、读取”权限,对“管理员”和“系统”具有“完全控制”权限。 File.Exists()
returns false
还有其他原因吗?
PS:我认为代码不重要,所以我没有输入代码,但如果这是规则,这里是代码的文本版本。
static void Main(string[] args)
{
var app = @"C:\Program Files(x86)\VideoLAN\VLC\vlc.exe";
var psi = new ProcessStartInfo();
psi.FileName = Path.GetFileName(app);
psi.WorkingDirectory = Path.GetDirectoryName(app);
Process.Start(psi);
}
无论如何,在Visual Studio中似乎有一个奇怪的粘贴路径行为。如果我在文件资源管理器中使用“复制为路径”并将其粘贴到空字符串中,VS 会删除 Files
和 (x86)
之间的 space。
在您的文件系统上,Files
和 (x86)
之间有一个 space。您在用于获取文件的字符串中没有它,因此应将其更改为:
var app = @"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe";
// ^
// need this
就您的陈述而言:
Anyway, there seems to be a weird behaviour of pasting path in Visual Studio. If I use "Copy as path" in File Explorer and paste it into an empty string, VS removes the space between
Files
and(x86)
.
这几乎可以肯定是因为自动格式化,这是在粘贴时完成的(尽管你可以禁用它,或者使用 CTRL+Z 来备份,因为它似乎粘贴 then 格式)。
由于您粘贴 "quoted thing"
内部引号以 ""quoted thing""
结束,quoted thing
位现在 外部 引号因此主题自动格式化。
您是否复制了文件名 不带 引号,或者复制了带引号但粘贴到 非引号区域,我怀疑它会未经修改地放入(作为带引号的字符串)。