我在WPF(扩展名为.scr)中开发了自定义屏幕保护程序,但遇到了一个问题: 当Windows运行屏幕保护程序时,该应用程序立即停止。 经过一些测试,我发现这是由于我正在创建/写入文件。
我尝试过:
但是什么都不起作用...
有什么想法吗?
注意::我需要在文件中写很多行
答案 0 :(得分:0)
好,我的坏...我发现了问题所在。
首先,屏幕保护程序无权在Windows文件夹中写入。
然后,我试图使用Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
在一个特殊的文件夹中进行写入,但是此属性返回该文件夹的名称。因此,我需要改用MessageBox.Show(log)
。
最后,我试图在一个不存在的文件夹中写入文件。我以为该文件夹会自动创建,但是我错了...
如@elgonzo所建议,我已经添加了异常处理程序,并使用import java.util.Arrays;
public class Project {
public static void main(String[] args) {
int[] a = {3, 6, 0, 4, 3, 2, 7, 1};
zombieApocalypse(a);
}
public static void zombieApocalypse(int[] array) {
boolean keepGoing = true;
int j = 1;
while (keepGoing) {
int[] arrayCopy = array;
//first element
if (array[0] == 0) {
arrayCopy[1] = array[1] / 2;
}
//element in the middle
for (int i = 1; i < array.length - 1; i++) {
if (array[i] == 0) {
arrayCopy[i - 1] = array[i - 1] / 2;
arrayCopy[i + 1] = array[i + 1] / 2;
}
}
//last element
if (array[array.length - 1] == 0) {
arrayCopy[array.length - 1] = array[array.length - 1] / 2;
}
System.out.println("Day " + j);
//copies clone back to original array
array = arrayCopy;
System.out.println(Arrays.toString(array));
j++;
int counter = 0;
//for each element checking if every city is zero
for (int element : array) {
counter = counter + element;
}
//if each element value in every city is zero, we stop
if (counter == 0) {
keepGoing = false;
}
}
}
}
在消息框中显示了错误消息。