文档没有解释传递路径(例如“myFile_temp.jpg”)时的行为,但我认为它会保存应用程序目录,因为这是相对于我们当前运行的应用程序的相对路径
我认为可以通过使用将当前应用程序目录添加到我的临时文件名来解决问题
string appPath = Path.GetDirectoryName(Application.ExecutablePath);
当然有很多方法可以做到,但这应该有效。
我的问题是我想知道为什么会发生这种情况,而不是仅仅在其上投放补丁并将其发回给用户。
代码是使用.NET 4.0和Visual Studio 2010编译的WPF,C#项目,可在许多不同的机器上运行。主要是32位XP,而开发机器是64位Windows 7。
任何人都可以解释这种行为及其发生的原因吗?
修改
文件有时会保存到用户选择文件的目录中进行操作。他们调整大小,程序会跟踪每个文件路径的大小百分比。当用户完成后,他们将点击完成,程序将遍历每个文件路径,创建副本,调整图像大小,然后在末尾用_temp保存它。
请注意,它并不总是这样做,并且它不会对它们触及的所有文件都这样做。
答案 0 :(得分:0)
它按预期工作。你只是没想到有效的行为。让我们假设您的应用程序放在c:/superapps/myapp.exe中。你选择了命令行而你在c:wich意味着这是你当前的工作目录。您仍然可以通过./superapps/myapp运行您的应用程序,但您的工作目录仍然是c:在这种情况下,这将是您的应用程序的工作目录,而不是您放置binnaries的目录。这就是为什么它可能没有权限或保存您的位置意外的数据。你应该总是认为你的应用程序可以像Anny其他命令一样运行。它将在用户当前所在的位置(他当前工作的目录)工作,而不是在它的二进制文件存储的位置