客户端程序需要在一台远程的文件服务器上创建一个文件问题:如果多台客户端同时运行,在某一个时间点上可能出现多台客户端同时要向文件服务器创建文件注意:客户端创建的文件名是以当前的系统时间命名的,如果“20091012135115”2009年10月12号13点51分15秒如果是这种情况的话,后面的文件可能会覆盖掉前面的文件,从而造成所有文件没有完全创建的情况请问在现实项目,如果碰到这样的问题要如何解决?希望有经验的兄弟指点下,谢谢!

解决方案 »

  1.   

    ChenHui530文件服务器我不能做任何操作的
    只有在程序中去控制解决上面的问题现在有一个解决方案就是要借助数据库来做的
    但是总感觉不好,所以寻求更好的办法
      

  2.   

    如果服务器上的程序是你自己写的话很容易自己来排队的就象windows处理消息机制一样
      

  3.   

    用什么方式上传?能否侦查server是否忙,忙则等待
      

  4.   

    用Dir$(FileName)判断生成的文件名在服务器上是否存在,如果存在就把秒数据加1,再创建
      

  5.   

    1)创建时文件名带上自己客户端的标识,比如两个客户端分别创建 20091012135115_C1、20091012135115_C2。
    2)然后各自写自己的文件。
    3)写完后用重命名命令将自己的文件更名为 20091012135115,由于重命名不会进行覆盖,肯定只能有一个成功。
    4)重命名后可以重新查看一下自己原先的文件名,比如第一个客户端看到 20091012135115_C1 还存在,说明文件名 20091012135115 别其他客户端占用了,可以
      a)删除 20091012135115_C1,返回上传不成功
      b)尝试将 20091012135115_C1 重命名为下个时间的文件名: 
            20091012135116, 20091012135117,  20091012135118...
        一直到重命名成功为止。