我不知道你思路是如何的,但是有一个可行的思路是这样的:你FTP服务器,其实相对于操作系统来说,也是用的本地目录,比如将 C:\root\作为根目录;针对于每个用户来说,他们打开的目录不会超过根目录;
而有的服务器,为了不同的用户拥有不同的根目录,会让其自己设定自己的目录,但是这些目录,都是在根目录之下的,就跟楼主你说的是一样的。
也就是说,每个用户的根目录是假的,是在“C:\root\User(根据不同的用户名设定)\*”下的任意一个子目录。而且这个路径是跟用户名有对应的关系。相当于每个用户都拥有自己的一个保险箱一样。而你当获取用户的请求路径的时候,你需要跟你所设定的根目录"C:\root\"对比,然后你获取的路径就很明确了;
所以你的解析过程如下():提前的信息:你的根目录:C:\root\
用户A访问默认的根目录:C:\root\A (用户访问的时候,文件管理器是空的)
假设用户建立了一个文件夹:C:\root\A\a (用户访问的时候,文件管理器就有一个文件a可以看到了);假设用户访问你所说的路径。是".\\1\\2“
你应该首先获取你的根目录,然后转换到用户所说的路径,这样才是本地的绝对路径。
而有的服务器,为了不同的用户拥有不同的根目录,会让其自己设定自己的目录,但是这些目录,都是在根目录之下的,就跟楼主你说的是一样的。
也就是说,每个用户的根目录是假的,是在“C:\root\User(根据不同的用户名设定)\*”下的任意一个子目录。而且这个路径是跟用户名有对应的关系。相当于每个用户都拥有自己的一个保险箱一样。而你当获取用户的请求路径的时候,你需要跟你所设定的根目录"C:\root\"对比,然后你获取的路径就很明确了;
所以你的解析过程如下():提前的信息:你的根目录:C:\root\
用户A访问默认的根目录:C:\root\A (用户访问的时候,文件管理器是空的)
假设用户建立了一个文件夹:C:\root\A\a (用户访问的时候,文件管理器就有一个文件a可以看到了);假设用户访问你所说的路径。是".\\1\\2“
你应该首先获取你的根目录,然后转换到用户所说的路径,这样才是本地的绝对路径。
解决方案 »
- 在SDK中,关于list control这个控件的用法
- 在vc++6.0 下如何才能使类CCheckListBox和相关控件相关联
- 工厂方法 的Product基类,可以不用设为抽象类吗?
- 如何绑定数据列??
- 在WM_PAINT消息处理中调用InvalidateRect函数有什么作用?
- (1)*p!="\0"与(2)**p!='\0'这种现象如何理解?
- 对话框中有几个编辑框,如何在敲EnTER后移到下一个编辑框?
- 请问各位高手,如何取得window验证的密码,有谁知道么?
- debug assertion failed
- 怎么用程序实现男生变女生?
- 为什么读文件的小漏洞会影响CString类型变量的值??
- 如何把DirectSound播放的声音输出到文件?
不过,FTP名后加斜杠加文件路径就是其绝对路径吧,试试就知道了。