C# winform未在只读文件夹中创建文件

C# winform未在只读文件夹中创建文件,c#,file-writing,C#,File Writing,我正在尝试使用下面的代码在目录中创建一个文件 if (File.Exists(myDir)) { return myDir; } System.IO.Directory.CreateDirectory(myDir); File.SetAttributes(myDir, FileAttributes.Normal); //string name = myDir + "/" + filename; File.Create(myDir).Dispose(); return myDir; 当

我正在尝试使用下面的代码在目录中创建一个文件

if (File.Exists(myDir))
{
    return myDir;
}
System.IO.Directory.CreateDirectory(myDir);
File.SetAttributes(myDir, FileAttributes.Normal);

//string name = myDir + "/" + filename;
File.Create(myDir).Dispose();
return myDir;

当我在Mac上运行它时,它可以工作,因为目录具有写权限,但是,我注意到在windows 10上,所有文件夹都是自动只读的,因此在路径中写入的访问被拒绝

在这个路径中写入文件的解决方案是什么

顺便说一句,如果我使用这个路径,它是我的MacBook目录(读写权限):“//Mac/Home/Movies”它将正常工作,它将在其中创建子目录和文件,但是如果我选择windows的“C:\CSVtest”,它将只显示“访问被拒绝,因为它是只读的,我找不到绕过只读的方法,我也在其他windows 10计算机上尝试过,windows 10上的所有文件夹都是只读的,所以情况也是一样

//path = @"C:\Temp\Bar\Foo\Test.txt";
Directory.CreateDirectory(Path.GetDirectoryName(path));
Directory.CreateDirectory将递归地创建目录,如果目录已经存在,它将返回而不出错

然后您将创建该文件

File.Create(path).Dispose();

“所有文件夹都是自动只读的”,不,它们不是。什么是myDir?出于兴趣。。。用WinForms在Mac上运行C#?您正在运行Mono或Xamarin.Mac安装程序吗?或者可能是Mac的Core.Net?似乎您正试图创建一个目录和一个同名文件,您在两个调用中都使用了
myDir
。这在Windows上是不允许的。myDir是包含目录路径的字符串变量,我在mac上使用parallel运行Windows,在我的Windows 10上,这里的所有文件夹都是只读的,但是如果我运行相同的代码,但使用mac的目录,它将创建它,而不会出现任何问题,我的印象是,即使我手动将其设置为读写,windows也会自动将其设置为只读。我明白了,但是如果我在mac的根目录上选择一个具有读写权限的目录,它怎么会工作得很好?您是否在mac上同时保留了一个文件和一个目录,或者创建该文件会删除该目录?它会创建包含所有子文件夹的目录和最后一个文件夹中的文件,因此它应该是一样的,只有当我选择examplepath=“C:\Temp\时,它才会说访问被拒绝,顺便说一句,我没有使用”@“这很重要吗?我发现,就像@Renevogt提到我把创建目录和创建文件混在一起一样,我对只读的东西感到困惑,因为它在我的mac上工作,这是多么巧合,但非常感谢。”