一道面试题:文件拷贝

方工 2006-05-21 05:01:12
情景:
在面试过程中,求职者被要求写一个文件拷贝函数。
http://blog.csdn.net/onestab/archive/2006/05/21/747348.aspx
...全文
2416 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsktn 2006-05-23
  • 打赏
  • 举报
回复
system("copy srcfile objfile");//不知会不会给0分
wsktn 2006-05-23
  • 打赏
  • 举报
回复
system("copy srcfile objfile");
heihei2004 2006-05-22
  • 打赏
  • 举报
回复
呵呵,不错啊
flyingdancing2005 2006-05-22
  • 打赏
  • 举报
回复
好...
tidyduck 2006-05-22
  • 打赏
  • 举报
回复
没错,程序员就应该考虑这么多!
zjyeling 2006-05-22
  • 打赏
  • 举报
回复
感觉太恐怖了!居然有这么多东西!~~
alaiyeshi 2006-05-22
  • 打赏
  • 举报
回复


考虑的很好
weasea 2006-05-22
  • 打赏
  • 举报
回复
........
kingofworl 2006-05-22
  • 打赏
  • 举报
回复
考虑的很多
tabris17 2006-05-22
  • 打赏
  • 举报
回复
不错
leisang 2006-05-22
  • 打赏
  • 举报
回复
楼主有很多是可以解决的,可以参考ntfs的文件拷贝,
复制文档不用压缩,安全的加密一般是加密自身的,也就是说拷贝过去还是加密形式,不存在安全漏洞,那么文件的创建者不变,文件的所有者为复制操作的用户,文件的权限为所在目录的权限继承,你可以自己编写字节流读写,因此无操作系统限制,假如目标文件已经存在提示是否覆盖。
iamwarrior 2006-05-22
  • 打赏
  • 举报
回复
原来这么多年来,我确实不懂得拷贝文件
NC 2006-05-22
  • 打赏
  • 举报
回复
这个。。。。。。太BT了
djfu 2006-05-21
  • 打赏
  • 举报
回复
问:你是怎样理解“拷贝”的?
答:嗯... 就是把文件的内容复制到新文件。
问:那么时间戳呢?
答:不拷贝。
问:目标文件名是否必须相同?
答:不必。
问:那它的名字能否一样?
答:这个...不能。
问:要不要担心名字欺骗?比如土耳其 I (注1)?
答:不要担心。
问:文件位置是否必须相同?请注意如果位置相同的话,则名称不能一样,除非拷贝到自身(接下来的问题是...)
答:当然。
问:怎么处理文件属性?
答:文件属性相同。
问:要不要修改原文件的属性?如果该文件是备份或存档的一部分,仍然保留其“存档”属性可能会出错。
答:不管它,保持原样。
问:如果原文件没有“存档”属性呢?假如新文件的“存档”属性为空,可能会造成用户的备份程序出错。
答:保持原样,不用理会用户的备份软件。
问:这个嘛,软件设计要为用户着想,我不认为这是最好的方案,但你是这样回答的。
答:...
问:那么压缩问题?这是文件的属性之一,但目标位置可能不支持压缩。
答:复制的文档不用压缩。
问:即使原文件是压缩的,而且目标位置也支持压缩?
答:是的。
问:关于加密文件,假如原文件是加密的,但目标位置不支持加密怎么办?
答:如果目标位置不支持加密,就不对复制文件加密。
问:嗯...,对不起,不是我节外生枝,但是这可能会引起严重的安全漏洞。尤其是这个文件复制函数最后可能要支持任意个参数(直接或间接)。
答:听着,我只管拷贝那个该死的文件。
问:那么文件的创建者呢?
答:不管他。
问:文件的所有者?
答:我不管。
问:文件的权限?要不要分别处理继承的权限和指定的权限?
答:不考虑权限。
问:该文件复制函数运行时所需的操作系统?
答:Windows XP。
问:家庭版、专业版、媒体中心版,其中之一还是多种?
答:专业版。
问:补丁包呢?
答:Service Pack 2。
问:这就意味着我们不支持其它的补丁包?
答:正是。
问:如何提供原文件名?
答:通过一个参数。
问:使用空字符结束的字符串、计算字符个数的字符串还是对象?
答:空字符结束的字符串。
问:是否可能传入空指针?
答:不。
问:是否可能传入空字符串?
答:不会。
问:是否可能传入恶意的字符串(例如,没有以 NULL 结束)?
答:不。
问:文件名用那种编码?
答:Unicode。
问:对不起,Unicode 不是编码格式,实际上在使用Unicode时要指定编码的名称,例如 UTF-8, UCS-2, UTF-16,等等。
答:很对,就用 UTF-16。
问:Big-endian 还是 little-endian (注2)?
答:随便!
问:接受相对路径,还是只接受完整路径?
答:只接受完整路径。
问:是否只支持特定的字符以便能对传入的参数进行过滤?
答:没有,调用者将负责过滤所有的路径和文件名。
问:目标文件的文件名是如何生成或提供的?
答:...
问:是否支持(或允许)异步文件拷贝操作?
答:不。
问:怎样报告错误?异常?错误代码?
答:随便。
问:应当在函数内部捕获异常,还是传递给调用者?
答:这个...传递出。
问:假如目标文件已经存在怎么办?
答:不会。
问:由调用者保证?
答:毫无疑问。
问:假如它真的存在,那就终止程序?显然违背了约定的条件,但谁知道发生了什么事情。
答:当然,随便您。
问:怎么处理其他数据流?
答:悉听尊便!
问:看来您觉得我有些过分,不过请别生气。我只不过是想要澄清我们的要求而已。显然如果我要写一个文件拷贝方法的话,不会使用许多现有的库和框架中的例程,而是要满足许多特殊的要求。我想要的是这些问题的正确答案。如果您愿意,我可以花一分钟时间讲解。要指出的是,在需求和目的方面,仍然有相当多的问题没有解决。
答:啊..........................
hongyanfly 2006-05-21
  • 打赏
  • 举报
回复
up
xjsean 2006-05-21
  • 打赏
  • 举报
回复
读文件再写文件

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧