我有一个问题,我编写了一个应用程序,它将迭代文件并为每个文件的整数添加+1,直到它达到特定的文件名.问题可能是因为.Net不直接访问本机文件系统,它填满了集合,但在我的情况下需要几年时间,相信我,我在目标文件夹中有26万个文件.迭代甚至没有到达第二个文件.线程完全冻结,没有错误,没有例外.那么有没有办法直接访问本机文件系统而没有任何无用的集合填充?
这是我的代码:
private void button1_Click(object sender, EventArgs e)
{
try
{
foreach (string file in Directory.GetFiles("\\\\Mypcname-PC\\vxheaven\\malware"))
{
count++;
label1.Text = Convert.ToString(count);
if (file.Contains(textBox1.Text))
{
label1.Text = Convert.ToString(count) + " reached the file";
break;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句.对不起,我的英语不好
问候
我正在创建一个带有for循环的链表,并在for循环中执行malloc.我得到的问题是在for循环中,malloc
总是返回相同的内存地址!
我认为它应该每次迭代返回一个不同的地址,以便我可以链接节点.当前输出意味着程序总是覆盖相同的地址,我无法链接节点,因为始终只有一个节点.这是对的吗?
struct list_node {
char *id;
char *url;
struct list_node *next;
};
int main(void) {
int j;
for (j = 0; j < 5; j++) {
struct list_node *new_node = malloc(sizeof(struct list_node));
printf("No %d has address %p\n", j, &new_node);
}
}
=>
No 0 has address 0x7fff5db122b0
No 1 has address 0x7fff5db122b0
No 2 has address 0x7fff5db122b0
No 3 has address 0x7fff5db122b0
No 4 has address 0x7fff5db122b0
Run Code Online (Sandbox Code Playgroud)
有人知道这个吗?
在以下代码中:
#include <stdio.h>
int main(void)
{
int i=-3,j=2,k=0,m;
m=++i||++j&&++k;
printf("%d %d %d %d",i,j,k,m);
}
Run Code Online (Sandbox Code Playgroud)
输出:
-2 2 0 1
为什么k = 0?因为我认为k也因为&&运算符而被执行?
我在C#中初始化了一个列表,如下所示:
List<int[]> X1 = new List<int[]>();
Run Code Online (Sandbox Code Playgroud)
现在我想知道在'X1'中插入元素的过程?通常的Add()不起作用,因为'X1'也是一个数组.那么有人可以帮我解决这个问题吗?