小编Joh*_*nie的帖子

在 Win7 上 GetOpenFileName 函数忽略 lpstrInitialDir 参数

我正在使用结构体成员GetOpenFileName并将其设置为我想要作为初始目录的目录。然而,在 Win7 上,我的应用程序似乎会记住用户上次打开的目录,并且它会忽略设置并转到最后一个目录。 lpstrInitialDirOPENFILENAMElpstrInitialDir

显然这是设计使然

lpstrInitialDir
LPCTSTR
初始目录。不同平台选择初始目录的算法有所不同。

Windows 7的:

1.如果 lpstrInitialDir 的值与应用程序第一次使用“打开”或“另存为”对话框时传递的值相同,则用户最近选择的路径将用作初始目录。
2.否则,如果lpstrFile包含路径,则该路径是初始目录。
3.否则,如果lpstrInitialDir不为NULL,则指定初始目录。

有谁知道如何阻止这种情况发生?

我希望我指定的目录成为初始目录,无论用户上次打开的文件是什么,即我希望应用上面的条件 3。我做了显而易见的事情并通过注册表进行了搜索,但我找不到与该问题相关的任何内容。

windows-7

5
推荐指数
1
解决办法
4525
查看次数

保留git存储库的多个只读副本

我在github.com上有一个存储库,我git下载到我的工作站,编辑,提交然后git将更改推回到github.一切正常.

但我经常使用例如克隆来自github.com的只读副本:

git clone git://github.com/jhsrennie/Test.git Test-ro
Run Code Online (Sandbox Code Playgroud)

通常这是因为我有临时测试安装,我不会开发,但我需要检查代码构建和运行.我的github存储库的副本可以是只读的,因为没有任何更改需要推回到github.麻烦的是,当我使用以下命令从github下载更改到我的只读副本时:

git pull origin master
Run Code Online (Sandbox Code Playgroud)

我现在发现git status显示如下:

$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#   (use "git push" to publish your local commits)
Run Code Online (Sandbox Code Playgroud)

我无法推动更改,我不想反正,但是未完成的提交会导致我出现问题,例如我无法查看新的远程分支.我最终不得不删除我的只读存储库,并在每次需要更新它时重新克隆它.

如何从github.com更新我的github存储库的只读副本,而不会让他们认为我需要推送提交?

或者,我是以愚蠢的方式做到这一点,是否有更好的方法来实现我的目标?

回应Cupcake的回答

这对我来说似乎很奇怪,而且显然我缺少了一些东西.这是如何重现问题:

  • 使用以下命令克隆存储库: git clone git@github.com:jhsrennie/Test.git Test-rw
  • 克隆只读副本: git clone git://github.com/jhsrennie/Test.git Test-ro
  • 进行更改Test-rw,然后git addgit commit

git status 现在显示(正如您所期望的):

renniej@RATHAUS /d/Dev/GIT/Test-rw (master)
$ git status
# On branch master
# Your branch is ahead …
Run Code Online (Sandbox Code Playgroud)

git

4
推荐指数
1
解决办法
1487
查看次数

标签 统计

git ×1

windows-7 ×1