我是C#的新手,我做了一个简单的Windows窗体应用程序,它基本上更新了游戏的个人文件。查找程序的安装路径
他们不得不手动移动和删除特定文件夹只是每次更改版本。我已经成功完成了这一点。
不过开始之前,我给它我真的应该改进。我知道我需要更改流程的名称并删除我的说明等。
我已经无意中发现了一个错误,而不是我采取的猜测,我认为最好是从一个更有经验的人了解如何做到这一点得到了意见。
我将使用创新安装,使安装我的应用程序,这样我可以肯定它会进入他们的程序文件32和64位。所以我知道这将在程序文件中。
所以现在我想知道如果我这样做了正确的方式或不?我用这个格式来找到自己的程序文件:
string programFilesFolder = Environment.GetEnvironmentVariable("PROGRAMFILES(X86)") ?? Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
然而,将在所有的Windows系统(XP,Vista中,Win7的,Win8的)这项工作,是完全正确的?我打算使用上面的,然后使用这个:
string PATCHSELECTOR = Path.Combine(programFiles, @"PATCH SELECTOR");
if (Directory.Exists(PATCHSELECTOR))
{
string GamereliteFolder = Path.Combine(programFiles, @"GAMERELITE~1");
if (Directory.Exists(GamereliteFolder))
然后我使用字符串方法移动文件。如果文件存在,则在将文件从PATCH SELECTOR复制到GAMERELITE之前将其删除。
而且将使用的.exe嵌入其制作程序的组件资源Windows XP支持需要跑出管理员?我以前是通过UAC进行组装工作,但是如果他们关闭了UAC或者如果它是XP,那么这种工作方式总是能够正常工作,所以我想我会尝试使用管理组件。
任何人都可能给我一些见解,想法或链接?
如何使用'Path.Combine'而不是'folder + filename'或'folder +“\\”+ filename'? –
啊啊感谢您的想法,我编辑了Path.Combine代码 –
现在,你不需要再检查\。 Path.Combine处理this.'string path = Path.Combine(文件夹,文件名); if(File.Exists(path))返回路径;'就够了。 –