一道面试题:文件拷贝

翻译 2006年05月21日 04:38:00
情景:
在面试过程中,求职者被要求写一个文件拷贝函数。

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

任务完成。
===========================
原文出自:(Ooze)
注:注释为译者所加。

史上最难的一道Java面试题

求下面这段程序的运行结果public class TestSync2 implements Runnable{ int b=100; synchronized void m1() ...
  • weixin_38553453
  • weixin_38553453
  • 2017年06月08日 15:31
  • 605

web前端一道很“坑”的js面试题

f = function() {return true;}; g = function() {return false;}; (function() {if (g() && [] == ![]) ...
  • k358971707
  • k358971707
  • 2017年02月23日 22:28
  • 991

前端程序员经常忽视的一个JavaScript面试题

前言 年前刚刚离职了,分享下我曾经出过的一道面试题,此题是我出的一套前端面试题中的最后一题,用来考核面试者的JavaScript的综合能力,很可惜到目前为止的将近两年中,几乎没有人能够完全答对,并非...
  • bluehire
  • bluehire
  • 2016年02月16日 13:27
  • 441

一道很不错的js面试题

function Foo() { getName = function () { alert (1); }; return this; } Foo.getName = function...
  • java_goodstudy
  • java_goodstudy
  • 2016年12月04日 01:42
  • 1079

五个囚犯 一道真正难倒亿人的智力题,这是微软的面试题。

  5个囚犯,分别按1-5号在装有100颗绿豆的麻袋抓绿豆,规定每人至少抓一颗,而抓得最多和最少的人将被处死,而且,他们之间不能交流,但在抓的时候,可以摸出剩下的豆子数。问他们中谁的存活机率最大??提...
  • kj021320
  • kj021320
  • 2007年08月22日 02:34
  • 1492

java-多线程-一道阿里面试题分析

传说这是阿里的一道面试题: 也传说发这道题出来的作者去了tmail。下面是关于题目的描述:      这段代码大多数情况下运行正常,但是某些情况下会出问题。什么时候会出现什么问题?如何修正?可见博...
  • liguogangde
  • liguogangde
  • 2013年06月15日 22:44
  • 2440

一道关于排序的面试题

以前见群里发了一道面试题: 两个已排好序数组,A和B,现要求对他们重新联合排序,合以的小数放入A数组中,大的数放入B中。 这题的关键是两个数组已经排好序,如果按传统...
  • pingwangzhi
  • pingwangzhi
  • 2017年05月29日 09:31
  • 268

一道恶心的JAVA面试题

问下面程序输出结果: public class Test3{  public static void main(String[] args){        FlyMen f = new FlyMen...
  • wwwwsoe
  • wwwwsoe
  • 2007年04月14日 23:48
  • 1049

java面试题汇总记录

汇总了干开发以来遇到的面试题,便于查看~(仅供参考,错误请指正,需要更详细的解答请自行百度或谷歌) 1. 实现多线程方式 1、继承Thread类,重写run函数 2、实现Runnable接...
  • kuangtengda
  • kuangtengda
  • 2017年01月06日 15:32
  • 1770

由一道腾讯面试题引发的关于递归函数使用的各种情况总结

一直有一个感受就是,当我们在某些问题抽象的定义解答时候感到疑惑是,不妨看一下具体问题的解答,更加有助于我们理解问题。首先看一下腾讯的一道招聘的测试题。        1、面试题是一道程序编程题,要求...
  • wang_dong001
  • wang_dong001
  • 2015年09月08日 10:47
  • 862
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一道面试题:文件拷贝
举报原因:
原因补充:

(最多只允许输入30个字)