【问题标题】:automatically get computer user for a directory自动获取目录的计算机用户
【发布时间】:2015-10-14 05:36:52
【问题描述】:

我做了一个密码保存程序,可以保存到特定目录中的文件

static String fly = "C:\\Users\\tomtom\\Documents\\AlternativePorjectDirectory\\accounts";

                          user--/\/\/\
                                ||||||

但是每次我把这个软件给某人时,我都必须向他们询问他们的用户,然后重写软件,导出到 USB 并给他们。自动找到计算机用户会成功,所以我可以与大家分享这个程序。
我希望它看起来像什么

static String fly = "C:\\Users\\"+C:User+"\\Documents\\AlternativePorjectDirectory\\accounts";

这样计算机用户= C:User

我对编程很陌生,所以可能需要具体说明

【问题讨论】:

    标签: file-io directory finder


    【解决方案1】:

    您实际上不需要这样做,而且由于用户文件夹并不总是 C:\Users\,因此有更好的方法。

    %USERPROFILE% 是一个环境变量,它始终等于用户文件夹,例如 C:\Users\SomeGuy,或者在 XP 系统上,C:\Documents and Settings\SomeOtherGuy。

    只是:

    DWORD nSize = MAX_PATH;
    CHAR* lpBuffer = new CHAR[nSize];
    GetEnvironmentVariableA("USERPROFILE",lpBuffer,nSize);
    static String fly = lpBuffer+"\\Documents\\AlternativePorjectDirectory\\accounts";
    

    【讨论】:

    • 谢谢!我是否必须制作 lpBuffer 和 nSize 变量
    • 是的。请参阅上面的编辑,我更改了一些代码。确保用户 GetEnvironmentVariableA 强制为 ASCII。上面的代码应该可以满足您的任何需求,但为了更深入的解释,read the page on MSDN
    • 抱歉,我无法让它工作
    • 尝试将#include <windows.h> 添加到代码顶部(.cpp 文件)或头文件 (.h) 中。
    • 如果我做得对,我仍然无法让它工作 idk,就像我真的需要一个非常短的完整代码的示例
    【解决方案2】:

    如果你会使用脚本,答案将是:

    awk -F '//' '{print $2}'
    

    这里有一篇文章概述了如何获得 awk: How to run an awk commands in windows?

    【讨论】:

    • 我正在使用 java eclipse
    猜你喜欢
    • 2015-03-10
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多