【问题标题】:Project looking in wrong directory for files(streams)项目在错误的目录中查找文件(流)
【发布时间】:2013-04-15 10:12:46
【问题描述】:

过去几天我一直在制作游戏。达到某些里程碑后,我会将项目文件夹 C&P 到我的 Dropbox 文件夹中,然后在我的 Visual Studio 文件夹中创建一个新文件夹。

我现在遇到了一个问题,但是当我尝试从文件中读取时,streamreader 正在尝试从以前的文件夹目录中读取。

例如,在“Project2”中,阅读器正试图从“Project1”中的文件中读取。我该如何更改?

【问题讨论】:

  • 请显示有问题的代码 - 您可能使用的是相对路径,但您当前的工作文件夹与您的期望不符。

标签: c# xna stream directory


【解决方案1】:

首先,您很可能指定了一个绝对目录 ( "C:\Blah\BlahBlahblah..." ) 或者您将工作目录设置到了错误的位置。

使用相对路径或始终将您的数据存储在一个固定的位置(现在的惯例是将数据存储在APPDATA。将其存储在类似程序文件是一个可怕的约定。当你发布你的程序时不要这样做)。使用 XNA 标记后,您的根目录还应该指定到一个相对位置(“内容”、“数据”等),这样当可执行文件启动时,它会查看可执行文件所在的位置,+ 在文件夹“内容”或“数据”。这将使使用内容加载器更容易。

现在,一般性建议。您应该永远必须完全创建一个新项目来进行版本控制。你字面意思在做任何好事free Version Control System (or like this one)。版本控制将使您减少这方面的痛苦。

最后,SO 的最后一个提示:描述您的问题很酷,但比所有这些组合更好的是发布引发错误的代码。这样做可以让我们弄清楚到底出了什么问题,因为 SO 的熟练专业人员(我正努力成为其中之一)已经处理并知道如何处理多种异常和编译错误(或者我们的 Google-傅先生气势汹汹)。

【讨论】:

  • 感谢您的回答,更重要的是您的建议!
  • @Fendorio 没问题。 :D 享受 XNA 等。不过,您可能要记住,XNA 是已弃用的技术(它仍可在 Windows 7 / 8 上运行,但 MS 不再积极支持它)。如果框架中存在错误,它们会一直存在。但是,在大多数情况下,它是一个很好的框架,也是学习的好方法,直到您准备好使用原始 DirectX / SharpDX 或 OpenGL。如果你需要更相关,你也可以尝试使用MonoGame(谷歌一下,它的构建是 100% 像 XNA 并在下面使用 SharpDX 来保持最新状态)。
  • 很酷,谢谢 :) 是的,我读到它已经停产了,我是一名在游戏开发方面学习 CS 的本科生,所以明年我将使用 Open GL 等,XNA 似乎纯粹是为了淘汰一个游戏创意的快速原型!
  • @Fendorio 是的,绝对是。我自己广泛地使用了它一段时间,然后才决定它还不够低级,无法完成我现在正在用它做的所有有趣的事情。 :D 我去了 SharpDX,但在做了一段时间之后决定“嘿,我已经在使用基本上是 DirectX 的东西了。我为什么不回到 C++ 并使用 real DirectX?”这就是我今天所处的位置。顺便说一句,我也是本科生,所以我知道你的感受。祝你好运! :D
猜你喜欢
  • 1970-01-01
  • 2016-07-19
  • 1970-01-01
  • 1970-01-01
  • 2015-09-16
  • 2016-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多