0

文档没有解释传入“myFile_temp.jpg”等路径时的行为,但我认为它会保存应用程序目录,因为这是一个相对路径,相对于我们当前正在运行的应用程序。

我认为可以通过将当前应用程序目录添加到我的临时文件名来解决问题, string appPath = Path.GetDirectoryName(Application.ExecutablePath); 当然有很多方法可以做到,但这应该可以。

我的问题是我想知道为什么会发生这种情况,而不是只是在上面打一个补丁并将其寄回给用户。

代码是 WPF,使用 .NET 4.0 和 Visual Studio 2010 编译的 C# 项目,可在许多不同的机器上运行。大多数是 32 位 XP,而开发机器是 64 位 Windows 7。

任何人都可以解释这种行为以及它发生的原因吗?


编辑

这些文件有时会保存到用户从中选择要操作的文件的目录中。他们调整它们的大小,程序跟踪每个文件路径的大小百分比。当用户完成后,他们将单击完成,程序将遍历每个文件路径,创建一个副本,调整图像大小,然后在最后保存一个 _temp。

请注意,它并不总是这样做,并且当它这样做时,它不会对他们接触的所有文件都这样做。

4

1 回答 1

0

它按预期工作。你只是没想到有效的行为。假设您的应用程序位于 c:/superapps/myapp.exe 中。你打开了命令行,你在C:\这意味着这是你当前的工作目录。

您仍然可以通过 ./superapps/myapp 运行您的应用程序,但您的工作目录仍然是C:\. 在这种情况下,这将是您的应用程序的工作目录,而不是您放置二进制文件的目录。

这就是为什么它可能没有权限或将数据保存在您意想不到的位置。您应该始终认为您的应用程序可以像 dir 之类的任何其他命令一样运行。它将在用户当前站立的地方(他当前的工作目录)而不是在它的二进制文件存储的地方工作

于 2017-02-13T19:05:06.857 回答