【问题标题】:How to get path of opened file in c++如何在c ++中获取打开文件的路径
【发布时间】:2020-07-10 05:41:22
【问题描述】:

我正在尝试为我的记事本项目实现文件保存功能。

文件保存功能应该这样实现:

  1. 点击保存菜单

  2. 如果写在记事本上的文本从未保存,请打印文件对话框并设置文件路径,然后保存。

  3. 如果文本已经保存(可以修改),只需保存。

我认为需要当前文本文件的路径来检查是否从未保存或已经保存。

(如果文件从未保存,则路径不存在。)

那么,如何获取当前文件的路径呢?

我正在使用 VS2019,MFC。

感谢您的帮助。

【问题讨论】:

  • 如果文件从未保存,则该文件不存在。如果你修改了一个文件,你已经打开了一个文件(或保存了一个新文件),因此应该知道路径
  • @RoQuOTriX 是的。解决方案之一是在打开或保存(第一次)文件时保存文件路径。文件路径将存在于某处并用于检查是否从未保存或已经保存。但我对这个解决方案感到不自然。例如,不适合通过文件标题是否为“Untitled”来判断是否从未保存。所以我认为如果可能的话,每时每刻都找到文件路径更合适。
  • 但是为什么呢?您可以使用 bool: FileExist 或带有 Path 的字符串,对于不存在或如果保存文件则设置为 NULL?我猜你以后会不止一次需要这个属性
  • 您无法从“当前文件”中获取路径。您必须设计一些自己的机制来保存已用于当前文件的任何文件名。
  • 为什么要重新发明轮子?如果您打开一个文件,请将其记录在一个变量中。简单的。这里没有复杂的事情要做。

标签: c++ mfc


【解决方案1】:

假设您使用文档视图架构,您有一个 CDocument 方法可以告诉您文件的路径,如果文件尚未保存,则为 NULL/空:https://docs.microsoft.com/en-us/cpp/mfc/reference/cdocument-class?view=vs-2019#getpathname

“文档的完全限定路径。如果文档尚未保存或没有与之关联的磁盘文件,则此字符串为空。”

【讨论】:

    猜你喜欢
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-29
    相关资源
    最近更新 更多