- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有这个代码:
Console.Title = "System Reader";
Console.WriteLine("Enter the Domain-Address <or local>:");
string domain = Console.ReadLine();
Console.Clear();
string date = DateTime.Now.ToString("yyyy-MM-dd");
string time = DateTime.Now.ToString("HH-mm-ss");
double count = 1;
string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "user_" + domain + "_" + date + "_" + time + ".txt");
string ComputerName = Environment.MachineName;
Console.Clear();
if (domain == "local")
{
ObjectQuery user = new ObjectQuery("SELECT * FROM Win32_UserAccount WHERE LocalAccount = True");
ManagementObjectSearcher userSearcher = new ManagementObjectSearcher(user);
TextWriter tw = new StreamWriter(path);
tw.Write("Account Type" + "\t" + "Caption" + "\t" + "Description" + "\t" + "Disabled" + "\t" + "Domain" + "\t" + "Full Name" + "\t" + "Local Account" + "\t" + "Lockout" + "\t" + "Name" + "\t" + "Password Changeable" + "\t" + "Password Expires" + "\t" + "Password Required" + "\t" + "SID" + "\t" + "SID Type" + "\t" + "Status" + "\t");
for (int i = 0; i < 10; i++)
{
tw.Write("Group" + (i + 1) + "\t");
}
tw.WriteLine("");
foreach (ManagementObject userObj in userSearcher.Get())
{
tw.WriteLine(userObj["AccountType"] + "\t" + userObj["Caption"] + "\t" + userObj["Description"] + "\t" + userObj["Disabled"] + "\t" + userObj["Domain"] + "\t" + userObj["FullName"] + "\t" + userObj["LocalAccount"] + "\t" + userObj["Lockout"] + "\t" + userObj["Name"] + "\t" + userObj["PasswordChangeable"] + "\t" + userObj["PasswordExpires"] + "\t" + userObj["PasswordRequired"] + "\t" + userObj["SID"] + "\t" + userObj["SIDType"] + "\t" + userObj["Status"]);
Dictionary<string, string> LocalGroups = new Dictionary<string, string>();
ManagementObjectSearcher groupSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_Group WHERE LocalAccount = TRUE");
foreach (ManagementObject groupObj in groupSearcher.Get())
{
ManagementObjectSearcher linkSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_GroupUser Where GroupComponent = \"Win32_Group.Domain=\'" + ComputerName + "\',Name=\'" + groupObj["Name"] + "\'\"");
foreach (ManagementObject linkObj in linkSearcher.Get())
{
string UName = linkObj["PartComponent"].ToString();
UName = UName.Substring(UName.IndexOf("=") + 1);
string Domain = UName.Substring(0, UName.IndexOf((","))).Replace("\"", "");
UName = UName.Substring(UName.IndexOf("=") + 1).Replace("\"", "");
if (UName.IndexOf(userObj["Name"].ToString(), 0, StringComparison.OrdinalIgnoreCase) == 0)
LocalGroups.Add(groupObj["Name"].ToString(), Domain + "\\" + UName);
tw.WriteLine(LocalGroups);
}
}
}
tw.Close();
TextReader tr = new StreamReader(path);
Console.WriteLine(tr.ReadToEnd());
tr.Close();
Console.Write("\nPress Enter to exit ...");
Console.Read();
}
}
}
但输出只是 System.Collections.Generic.Dictionary2[System.String,System.String]
而不是用户的组名。
有人知道问题出在哪里吗?
P.S 这个代码应该是本地的。
最佳答案
变量LocalGroups
是 Dictionary<string, string>
.
您不能简单地将其写入您的 TextWriter
.当您尝试时,您会得到对象的类型,这就是您所看到的。
Dictionary<string, string> LocalGroups = new Dictionary<string, string>();
...
...
tw.WriteLine(LocalGroups); // writes System.Collections.Generic.Dictionary`2...
相反,您可以遍历集合并写入每个键/值对:
foreach (var group in LocalGroups)
tw.WriteLine("Key: {0} Value: {1}", group.Key, group.Value);
关于c# - 为什么我在写入 StreamWriter 时得到 System.Collections.Generic.Dictionary`2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21301284/
StreamWriter.Flush() 和 StreamWriter.Close() 在功能上有什么区别? 当我的数据没有正确写入文件时,我将 Flush() 和 Close() 添加到我的代码末尾
我需要尽快写入许多文件,但我没有像我使用的那样使用 Streamwriter 获得我想要的结果。例如,如果我写... $File = "c:\somefile" $Contents = get-con
我正在尝试创建一个程序,将文本文件中的几行从文本框编辑为用户设置值。 至少,在我开始使用这个值设置之前。我什至无法编辑该文件。这段代码有什么问题?我实际上尝试了更多示例,但没有一个起作用。 priva
遇到一个问题,streamwriter 在我正在生成的 csv 中生成错误的字符。字符  只出现在文件的开头: 5,"GEN",555555555,,"Evan","Smith",,,,,
我正在尝试创建一个程序,从文本框中将文本文件中的几行编辑为用户设置的值。 至少,在我懒得开始这个值设置之前。我什至无法编辑文件。这段代码有什么问题?我实际上尝试了更多示例,但没有一个有效。 priva
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
如何写入不同类的文件? public class gen { public static string id; public static string m_graph_file; } s
我正在使用 StreamWriter 类将一些文本写入新创建的文本文件,但输出总是出奇地错误,这是我的代码: StreamWriter sw = new StreamWriter("newtextfi
basicLog 是名称和时间戳的列表。我想将它们写入文件。我得到的两个错误是在 ';'在 StreamWriter 行和"file"上。在第二行。 ';'错误是:可能错误的空语句文件错误是:当前上下
这是我的代码。 : FileStream fileStreamRead = new FileStream(pathAndFileName, FileMode.OpenOrCreate, FileAcc
我已经初始化了 StreamWriter 实例并将其与“MyFile.txt”相关联 System.IO.StreamWriter sw = new StreamWriter("MyFile.txt"
我在字符串变量中有大量内容,我想使用流写入器将该内容写入文本文件。但是流编写器正在截断文本而不是将整个内容写入文件。为什么? using (StreamWriter sw = new StreamWr
我有一种方法可以将文件作为附件发送。我使用 StreamWriter 和 MemoryStream 来创建附件。代码如下: public void ComposeEmail(string from,
我试图每小时创建一个新的日志文件,并在服务器上运行以下代码。当天的第一个日志文件正在创建并写入正常,但当天没有创建更多的日志文件。任何想法可能出了什么问题?也不会抛出异常。 private void
我正在为我的游戏制作一个关卡编辑器,大部分工作正常,除了...当我尝试保存我的文件 (XML) 时,文件没有创建,在输出框中我得到: “System.NullReferenceException”类型
我在 form1 中有一个文本框和一个按钮,当我在文本框中书写时,我可以使用我的按钮将其保存到计算机上的文件中。这是放在我的按钮里面 public void button1_Click(obj
我目前的申请有问题,我开始认为这只是我的逻辑。即使浏览了这些表格和 MSDN,我也无法弄清楚。 我正在尝试使用 StreamWriter 在我的应用程序目录中创建文本文档并创建包含该文档的子文件夹。目
我组织了一个小类来实现一个快速记录器。我用一个在构造函数中实例化的私有(private) System.IO.StreamWriter 组成它。因为我使用的方式阻止我实现 using block ,所
我有一个使用此方法的 C# .NET 3.5 Windows 窗体程序: private void toLog(string sLog) { richTextBox1.
这里真的很迷茫。我正在运行 Windows 7 并使用管理员帐户,但由于某种原因,以下代码正在下降; public static readonly string Report = Path.Combi
我是一名优秀的程序员,十分优秀!