我正在使用FileStream
创建一个具有给定Length
的文件。OpenFileDialog
打开一个文件,FolderBrowserDialog
获取位置。现在的问题是,当我选择 D:\或 E:\驱动器上的位置时,它成功创建了文件。但是,当我选择 C:\驱动器时,它会给出 Exception
,例如 UnauthorizedAccessException 未处理。
C:\file.mp4 被拒绝。
当我选择桌面作为目标时,它不会给出异常
并且不会创建文件。我正在使用此代码
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。谁能解释一下解决方案是什么?提前致谢。
最佳答案
权限问题。对于 Vista/Windows 7/8,C:\
驱动器被视为系统,您需要提升进程的权限才能直接在其下创建文件。尝试以管理员身份运行您的进程或 Visual Studio,它应该可以工作。
希望有帮助。
关于c# - FileStream 不允许我在 C 驱动器上创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14154151/