在做一个文件切割器假设
File src = new File("abc.mp4");
File[] dest = new File[3];//假如切成三个文件for(int i=0;i<3;i++)
{
   dest[i] = new File("d:\" + 文件名);}我的想法是让文件名变成abc1.cut,abc2.cut,abc3.cut,但getName()+i的话应该会变成abc.cuti的情况
有什么方法可以只获得文件名字的前缀部分么??另外想做一个进度条显示切割进度,为什么要用多线程来控制进度条?

解决方案 »

  1.   

    突然想到应该可以用src.getName().subString()来截取前缀,但有什么常用方法么
      

  2.   

    你的意思是,原文件是abc.mp3,然后要分割为abc1.cut、abc2.cut吗?
    用split分割字符串可以的
      

  3.   

    恩,那请问下我用JProgressBar来显示切割进度,为什么要用多线程呢??
      

  4.   

    因为Swing API是围绕单线程模型设计的,这意味着Swing组件必须总是通过同一个线程来修改和操纵。有一个专门的线程用于和Swing组件交互。这个线程就是大家熟知的Swing线程,AWT(有时也发音为“ought”)线程,或者事件分派线程。所有的绘制和图形,鼠标事件,组件事件,按钮事件,和所有其它事件都发生在Swing线程。因为Swing线程的工作已经非常沉重了,当太多其它工作在Swing线程中进行处理时就会发生问题。所以业务逻辑操作要放在非Swing线程中,Swing组件刷新要放在Swing线程中。
      

  5.   

        public static String getExtension(String filename, String defExt) { 
            if ((filename != null) && (filename.length() > 0)) { 
                int i = filename.lastIndexOf('.');             if ((i >-1) && (i < (filename.length() - 1))) { 
                    return filename.substring(i + 1); 
                } 
            } 
            return defExt; 
        }