gpt4 book ai didi

c# - 在 C# 中找不到路径的一部分

转载 作者:行者123 更新时间:2023-11-30 19:54:15 28 4
gpt4 key购买 nike

我正在尝试构建一种方法,该方法能够在文件中写入另一个文件夹中的文件数。我已经得到它,但它不起作用,因为给我一个错误:

Could not find a part of the path ' C:\Users\Administrator\Desktop...\bin\release\%USERPROFILE%\AppData\Local_logC'

这是我的代码:

private static int GetCountGFiles(string dirname)
{
int fileCount = 0;
dirname = dirname.TrimEnd(new char[] { '\\' }) + @"\";

var fixedDirname = Environment.ExpandEnvironmentVariables(dirname);

fileCount += System.IO.Directory.GetFiles(fixedDirname).Length;

string[] all_subdirs = System.IO.Directory.GetDirectories(dirname);

foreach (string dir in all_subdirs)
fileCount += GetCountGFiles(dirname);

string data = string.Format("LogReg.txt");

System.IO.Directory.CreateDirectory(filePath);
var fileandpath = filePath + data;

using (StreamWriter writer = File.AppendText(fileandpath))
{
writer.WriteLine("[" + DateTime.Now + "]" + " - " + "Nº de Records: (" + fileCount.ToString() + ")");
}

return fileCount;
}

然后我这样调用方法:

GetCountGFiles(@"%USERPROFILE%\AppData\Local\Cargas - Amostras\_logsC\");

我该怎么办?

最佳答案

Directory.GetFilesDirectory.GetDirectories 等方法不会自动确定您传递给它的环境变量是什么。您需要使用 Environment.ExpandEnvironmentVariables 手动执行此操作.例如:

var fixedDirname = Environment.ExpandEnvironmentVariables(dirname);

现在你可以这样做了:

fileCount += System.IO.Directory.GetFiles(fixedDirname).Length;

(PS 无需在 string 上使用 ToString())

关于c# - 在 C# 中找不到路径的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42997211/

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