首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果文件存在,File.WriteAllText不会覆盖

如果文件存在,File.WriteAllText不会覆盖
EN

Stack Overflow用户
提问于 2018-06-30 03:58:25
回答 1查看 4.8K关注 0票数 1

我正在检查一个文件是否存在,如果它不存在,“创建并关闭”。否则,“覆盖”,但覆盖永远不会发生,只附加。

代码语言:javascript
复制
    if (!File.Exists(filePath))
        File.WriteAllText(filePath, data);
    else
        File.WriteAllText(filePath, data);

从MSDN:创建一个新文件,将指定的字符串写入文件,然后关闭该文件。如果目标文件已经存在,则将覆盖该文件。

它的设计是为了覆盖,但它没有。我做错了什么?

我的完整代码:

代码语言:javascript
复制
static void Save<T, Y>(Dictionary<T,Y> dict, List<Y> list, string path)
    {
        foreach (var val in dict.Values)
            list.Add(val);

        string data = JsonHelper.ToJson(list.ToArray(), true);
        Debug.Log("saving version: " + data);

        string filePath = Application.dataPath + path;

        if (!File.Exists(filePath))
            File.WriteAllText(filePath, data);
        else
            File.WriteAllText(filePath, data);
    }

编辑:

我补充说:

代码语言:javascript
复制
if (!File.Exists(filePath))
            File.WriteAllText(filePath, data);
        else
        {
            Debug.Log("never called?");
            File.Delete(filePath);
            File.WriteAllText(filePath, data);
        }

调用debug.log时,删除似乎被跳过(?)然后WriteAllText使文件更大,并附加副本。

解决了

是数据复制了自己,而不是文件。字典不允许重复,但我保存了一个列表,然后通过从保存文件中添加项来加载它。列表允许重复,而这些副本又看上去像是我没有覆盖文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-30 04:17:00

File.WriteAllText方法(字符串, 字符串)

创建一个新文件,将指定的字符串写入文件,然后关闭该文件。如果目标文件已经存在,则将覆盖该文件。

File.Delete方法(字符串)

删除指定的文件。

这是黑白相间。如果发生其他情况,则需要调试应用程序,因为要么抛出异常,要么路径不是您认为的那样,要么数据不是您所认为的那样。CLR和windows API不会掷骰子。

祝好运

更新

谢谢。我已经删除了第二个文件函数,并保留了delete,我已经验证了它的工作。我尝试过在tried参数中更改文件名,这是可行的。只剩下里面的数据。--我用if else语句保存字典以防止重复,但是文件中充满了重复项,因此在加载时会抛出一个异常,重复项存在

字典可以防止键(而不是值)上的重复,值可以整天重复。

代码语言:javascript
复制
foreach (var key in dict.Keys)
   list.Add(key );

或者如果您需要不同的值(取决于数据类型)

代码语言:javascript
复制
foreach (var val in dict.Values.Distinct())
   list.Add(val );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51111596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档