2

我正在使用FileStream给定的Length. OpenFileDialog打开文件并FolderBrowserDialog获取位置。现在的问题是,当我在 D:\ 或 E:\ 驱动器上选择位置时,它会成功创建文件。但是,当我选择 C:\ 驱动器时,它会给出Exception类似的结果UnauthorizedAccessException was unhandled.
C:\file.mp4 is denied. 。当我选择桌面作为目标时,它会给出 noException并且不会创建文件。我正在使用此代码

    private void createFile()
    {
        long size = fileInfo.Length;
        string name = file.FileName.Substring(file.FileName.LastIndexOf('\\') + 1, (file.FileName.Length - (file.FileName.LastIndexOf('\\') + 1)));
        string filename = "" + location.SelectedPath + name;

        FileStream outFile = new FileStream(filename, FileMode.Create);
        outFile.SetLength(size);
        outFile.Close();
    }

我的 UAC 已禁用,而且我是管理员用户。我使用的是 windows 8 pro。任何人都可以解释什么是解决方案?提前致谢。

4

2 回答 2

5

权限问题。对于 Vista/Windows 7/8,C:\驱动器被视为系统,您需要提升进程的权限才能直接在其下创建文件。尝试以管理员身份运行您的进程或 Visual Studio,它应该可以工作。

希望能帮助到你。

于 2013-01-04T09:18:54.120 回答
0

右键单击 exe => 以管理员身份运行 => 继续 => 立即检查。它现在应该可以工作了。

于 2014-08-24T15:23:04.660 回答