gpt4 book ai didi

c# - CreateDirectory 在公用文件夹中创建重复目录

转载 作者:可可西里 更新时间:2023-11-01 11:15:23 26 4
gpt4 key购买 nike

我有一个 Winforms 应用程序,如果该目录不存在,它应该在 Public Documents 文件夹中创建一个子目录,并向其中保存一个文本文件。但是,如果该子目录不存在,它实际上会在“C:/Users/Public”下创建另一个名为 Public Documents 的目录,而不仅仅是在现有的“C:/Users/Public”文件夹下创建一个子目录。 (在下面的示例中,子目录是变量“token”。)所以我最终得到了 2 个名为 Public Documents 的文件夹:

enter image description here

这是我的代码:

        if (result == DialogResult.Yes)
{

subPath = @"C:\Users\Public\Public Documents\" + token + @"\Tests\";

}
else if (result == DialogResult.No)
{
subPath = @"C:\Users\Public\Public Documents" + @"\Tests\";
}
TestModel testCall = new TestModel
{
Name = frm.fileName,
MethodName = txtApiMethod.Text,
Parameter = rtxtJson.Text,
SchemaKey = txtSchemaKey.Text
};
bool exists = System.IO.Directory.Exists(subPath);
string fileName = frm.fileName + ".txt";
string json = JsonConvert.SerializeObject(testCall);
string filePath = subPath + fileName;
if (!exists)
{
System.IO.Directory.CreateDirectory(subPath);
}
using (StreamWriter file = File.CreateText(filePath))
{
file.Write(json);

}

谁能告诉我为什么要创建一个重复的命名目录,以及我该怎么做才能在现有目录下创建一个新的子目录?

非常感谢任何帮助!

最佳答案

C:\Users\Public\Public Documents 是一个显示 名称。我有一个法式 Windows,显示名称是 C:\Users\Public\Documents publics

真正的路径是C:\Users\Public\Documents

显示:

Screenshot showing C:\Users\Public\Documents publics as display name

真实的:

Screenshot showing C:\Users\Public\Documents as real path

为确保您使用的是正确的文件夹路径(出于某些原因,可以使用 d: 代替,或者路径可能完全不同。切勿使用硬编码路径),你可以使用 System.Environment.GetFolderPath(System.Environment.SpecialFolder.CommonDocuments); 链接到 C:\Users\Public\Documents,例如:

var PublicDocuments = System.Environment.GetFolderPath(System.Environment.SpecialFolder.CommonDocuments);
if (result == DialogResult.Yes)
{
subPath = PublicDocuments + @"\"+ token + @"\Tests\";
}
else if (result == DialogResult.No)
{
subPath = PublicDocuments + @"\Tests\";
}

有关 System.Environment.SpecialFolder 的更多信息,请参阅文档和 System.Environment.GetFolderPath()

关于c# - CreateDirectory 在公用文件夹中创建重复目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56239389/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com