CreateDirectory 在 Public 文件夹中创建重复目录
CreateDirectory creates Duplicate Directory in Public Folder
我有一个 Winforms 应用程序,它应该在 Public Documents 文件夹中创建一个子目录(如果该目录不存在)并向其中保存一个文本文件。但是,如果该子目录不存在,它实际上会在 "C:/Users/Public" 下创建另一个名为 Public Documents 的目录,而不仅仅是在现有的 "C:/Users/Public" 文件夹下创建一个子目录。 (在下面的示例中,子目录是变量 'token'。)所以我最终得到 2 个名为 Public 文档的文件夹:
这是我的代码:
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
显示:
真实:
确保您使用的是正确的文件夹路径(出于某些原因,可以使用 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
and System.Environment.GetFolderPath()
的更多信息,请参阅文档
我有一个 Winforms 应用程序,它应该在 Public Documents 文件夹中创建一个子目录(如果该目录不存在)并向其中保存一个文本文件。但是,如果该子目录不存在,它实际上会在 "C:/Users/Public" 下创建另一个名为 Public Documents 的目录,而不仅仅是在现有的 "C:/Users/Public" 文件夹下创建一个子目录。 (在下面的示例中,子目录是变量 'token'。)所以我最终得到 2 个名为 Public 文档的文件夹:
这是我的代码:
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
显示:
真实:
确保您使用的是正确的文件夹路径(出于某些原因,可以使用 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
and System.Environment.GetFolderPath()