精华内容
下载资源
问答
  • C#中获取文件夹地址获取文件地址、获取文件夹中的某种类型文件集合、获取某文件中某种类型文件数量操作方法!

    C#中获取文件夹地址、获取文件地址、获取文件夹中的某种类型文件集合、获取某文件中某种类型文件数量操作方法!

    1.获取文件夹地址

    //获取文件夹地址
    FolderBrowserDialog fbd = new FolderBrowserDialog();
    fbd.Description = "The Description Of The Dialog";
    if (fbd.ShowDialog() == DialogResult.OK)
    {
        string path = fbd.SelectedPath;
        *******
        *******
    }

    2.获取某个文件地址

    //获取某个文件地址
    OpenFileDialog ofd = new OpenFileDialog();
    ofd.Filter = "(FileTypeName)|(*.YourFileType)";
    ofd.Title = "Your File Dialog Title";
    if (ofd.ShowDialog() == DialogResult.OK)
    {
        string path = ofd.FileName;
        *******
        *******
    }
    

    3.获取文件夹中某类文件

    //获取文件夹中某类文件集合
    DirectoryInfo directoryInfo = new DirectoryInfo(PicturePosTextBox.Text);
    FileInfo[] fileInfo = directoryInfo.GetFiles("*.jpg");
    foreach (FileInfo info in fileInfo)
        string fullName = info.FullName;
    *******
    *******

    4.获取某文件中某种类型文件数量

    //获取某文件中某种类型文件数量
    string fileType = "*.YourFileType";
    string directoryPath = "********";
    int fileNum = Directory.GetFiles(directoryPath, fileType).Length;

    5.获取文件名/拓展名

    string fileFullName = @"C:\Program Files\Microsoft Visual Studio 14.0\test.jpg";
    string filename = Path.GetFileName(fileFullName ); //文件名"test.jpg"
    string extension = Path.GetExtension(fileFullName );//扩展名 ".aspxjpg"
    string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileFullName );// 没有扩展名 "test"

    本人正在学习中,其他方法有待后续更新。。。

    展开全文
  • 通常情况下,我们取文件的后缀名作为文件的类型即可,但有时为了防止用户随便修改后缀名,就需要获取文件的真实类型。这时候可以通过文件的魔数来判别。魔数就是文件开头的那几个字节的数据。 代码实现 工具类代码...

    背景

    通常情况下,我们取文件的后缀名作为文件的类型即可,但有时为了防止用户随便修改后缀名,就需要获取文件的真实类型。这时候可以通过文件的魔数来判别。魔数就是文件开头的那几个字节的数据。

    代码实现

    工具类代码
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * @author lixk
     * @description 魔数工具类
     */
    public class MagicNumberUtils {
        /**
         * 魔数到文件类型的映射集合
         */
        public static final Map<String, String> TYPES = new HashMap<>();
    
        static {
            // 图片,此处只提取前六位作为魔数
            TYPES.put("FFD8FF", "jpg");
            TYPES.put("89504E", "png");
            TYPES.put("474946", "gif");
            TYPES.put("524946", "webp");
        }
    
        /**
         * 根据文件的字节数据获取文件类型
         *
         * @param data 文件字节数组数据
         * @return
         */
        public static String getFileType(byte[] data) {
            //提取前六位作为魔数
            String magicNumberHex = getHex(data, 6);
            return TYPES.get(magicNumberHex);
        }
    
        /**
         * 获取16进制表示的魔数
         *
         * @param data              字节数组形式的文件数据
         * @param magicNumberLength 魔数长度
         * @return
         */
        public static String getHex(byte[] data, int magicNumberLength) {
            //提取文件的魔数
            StringBuilder magicNumber = new StringBuilder();
            //一个字节对应魔数的两位
            int magicNumberByteLength = magicNumberLength / 2;
            for (int i = 0; i < magicNumberByteLength; i++) {
                magicNumber.append(Integer.toHexString(data[i] >> 4 & 0xF));
                magicNumber.append(Integer.toHexString(data[i] & 0xF));
            }
    
            return magicNumber.toString().toUpperCase();
        }
    
    }
    
    单元测试类
    import com.kalikali.userbiz.util.MagicNumberUtils;
    import org.junit.Test;
    import org.springframework.boot.test.context.SpringBootTest;
    
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    
    /**
     * @author lixk
     * @description 文件魔数测试
     */
    @SpringBootTest
    public class MagicNumberUtilsTests {
    
        /**
         * 读取文件字节数据
         *
         * @param filePath
         * @return
         * @throws IOException
         */
        public static byte[] getFileBytesData(String filePath) throws IOException {
            InputStream fs = new FileInputStream(filePath);
            byte[] b = new byte[fs.available()];
            fs.read(b);
            return b;
        }
    
        /**
         * 根据文件魔数获取文件类型
         */
        @Test
        public void getFileType() throws Exception {
            System.out.println(MagicNumberUtils.getFileType(getFileBytesData("src/test/resources/images/1.jpg")));
            System.out.println(MagicNumberUtils.getFileType(getFileBytesData("src/test/resources/images/2.jpg")));
            System.out.println(MagicNumberUtils.getFileType(getFileBytesData("src/test/resources/images/1.png")));
            System.out.println(MagicNumberUtils.getFileType(getFileBytesData("src/test/resources/images/1.gif")));
            System.out.println(MagicNumberUtils.getFileType(getFileBytesData("src/test/resources/images/3.gif")));
            System.out.println(MagicNumberUtils.getFileType(getFileBytesData("src/test/resources/images/1.webp")));
        }
    }
    
    
    运行结果

    在这里插入图片描述
    如果需要判断其他类型文件的真实类型,可以自行添加完善 魔数-类型 map.

    展开全文
  • 获取文件类型(后缀名): 方法一: split分割:如果用“.”作为分隔的话,必须是如下写法,String.split("\."),这样才能正确的分隔开,不能用String.split(".") String filename = "file.txt";// 文件名 String[] ...

    1.获取文件名:
    方法一:split分割

    		String fileName="E:\\file.docx";
    		String temp[]=fileName.split("\\\\");
    		String fileNameNow=temp[temp.length-1];
    		System.out.println(fileNameNow);
    

    控制台输出结果:
    在这里插入图片描述
    方法二:substring截取

    String fileName="E:\\file.pdf";
    		String fileNameNow = fileName.substring(fileName.lastIndexOf("\\")+1);
    		System.out.println(fileNameNow);
    

    控制台输出结果:
    在这里插入图片描述

    2.获取文件前缀名:

    		//获取文件名 
    		String filename = "file.docx";        
    		String caselsh = filename.substring(0,filename.lastIndexOf("."));
    		System.out.println(caselsh);
    

    控制台输出结果:
    在这里插入图片描述

    3.获取文件类型(后缀名):
    方法一:
    split分割:如果用“.”作为分隔的话,必须是如下写法,String.split("\."),这样才能正确的分隔开,不能用String.split(".")

    		String filename = "file.txt";// 文件名
    	    String[] strArray = filename.split("\\.");
            int suffixIndex = strArray.length -1;
            System.out.println(strArray[suffixIndex]);
    

    控制台输出结果:
    在这里插入图片描述
    方法二:
    substring截取:substring(int beginIndex, int endIndex)
    返回从开始位置(beginIndex)到目标位置(endIndex)之间的字符串,但不包含目标位置(endIndex)的字符。

    File file=new File("E:\\file.doc"); 
    		String fileName=file.getName();    
    		String fileTyle=fileName.substring(fileName.lastIndexOf("."),fileName.length()); 
    		System.out.println(fileTyle);
    

    控制台输出结果:
    在这里插入图片描述

    展开全文
  • 最近因为项目需要,需要对手机的文件进行分类浏览,获取手机中各种指定类型文件。想到一年之前曾经用递归的方法列出手机的所有MP3文件(参考这里),这个思路是很不错,但是这个方法对于层次不深的文件系统效果还...

    1、前言:

    最近因为项目需要,需要对手机的文件进行分类浏览,获取手机中各种指定类型的文件。想到一年之前曾经用递归的方法列出手机的所有MP3文件,这个思路是很不错,但是这个方法对于层次不深的文件系统效果还勉强过得去,如果手机文件数量巨大,文件夹层次较深的文件系统而言,效率就特别低!有些甚至半分钟都扫描不完整个手机的文件。鉴于此,从开源的文件浏览器项目中得到启示,并和大家分享

    2、正题:

    Android系统给我们提供了android.provider.MediaStore.XXX类,里面有很多接口可以直接获取相应的文件,比如android.provider.MediaStore.Images用于获取所有格式的图片,android.provider.MediaStore.Audio用于获取所有格式的音频,今天要介绍的是作为通用接口的android.provider.MediaStore.Files类,通过它可以获取任何你指定类型的文件。

    import android.content.ContentResolver;
    import android.content.Context;
    import android.database.Cursor;
    import android.net.Uri;
    import android.provider.MediaStore.Files;
    import android.provider.MediaStore.Files.FileColumns;
    import android.util.Log;
    
    public class FileUtils {
    
    	
    	public static void getSpecificTypeOfFile(Context context,String[] extension)
    	{
    		//从外存中获取
    		Uri fileUri=Files.getContentUri("external");
    		//筛选列,这里只筛选了:文件路径和不含后缀的文件名
    		String[] projection=new String[]{
    				FileColumns.DATA,FileColumns.TITLE
    		};
    		//构造筛选语句
    		String selection="";
    		for(int i=0;i<extension.length;i++)
    		{
    			if(i!=0)
    			{
    				selection=selection+" OR ";
    			}
    			selection=selection+FileColumns.DATA+" LIKE '%"+extension[i]+"'";
    		}
    		//按时间递增顺序对结果进行排序;待会从后往前移动游标就可实现时间递减
    		String sortOrder=FileColumns.DATE_MODIFIED;
    		//获取内容解析器对象
    		ContentResolver resolver=context.getContentResolver();
    		//获取游标
    		Cursor cursor=resolver.query(fileUri, projection, selection, null, sortOrder);
    		if(cursor==null)
    			return;
    		//游标从最后开始往前递减,以此实现时间递减顺序(最近访问的文件,优先显示)
    		if(cursor.moveToLast())
    		{
    			do{
    				//输出文件的完整路径
    				String data=cursor.getString(0);
    				Log.d("tag", data);
    			}while(cursor.moveToPrevious());
    		}
    		cursor.close();
    		
    	}

    上面是我写的一个文件工具类,都有注释,所以这里我就不再啰嗦了。调用时只需要传入context和后缀名就可

    FileUtils.getSpecificTypeOfFile(this, new String[]{".doc",".apk"});

    通过测试发现,用以前递归的方式,时间往往都是“秒级的”,而现在这个方法,基本上都是在“毫秒级”。效率提升了几十倍!

    希望对大家有所帮助!

    展开全文
  • 获取文件的真正类型

    千次阅读 2019-07-18 19:33:33
    我们通常情况下获取文件类型都是直接根据文件名后缀确定的,但是后缀名是可以随意修改的,因此我们只能通过文件的二进制文件头来确定文件的真正类型。 首先是将文件转换为字节流,然后获取字节流的前4位,并转换为...
  • 在一些日常开发中,有很多的app需要进行图片上传,浏览,下载等,在开发应用中我们往往需要知道图片的一些属性,比如图片的类型,如:bmp,jpg等,如果单...依据这些信息的规律,我们能很快地获取到图片的这些属性(至于每种类
  • java获取文件类型

    千次阅读 2018-07-19 17:04:56
    java获取文件类型 例子 @Test public void txtType() throws Exception { //需要注意的是 有些文件(例如 shell文件 获取的结果为null) String type = Files.probeContentType(Paths.get("c:/1.sh"...
  • JAVA获取真实的文件类型

    千次阅读 2017-05-25 16:31:56
    获取文件类型有些人根据文件名直接获取后缀名,其实这种做法是错误的,会造成很多错误和麻烦无法获取真实的文件类型,下面的方法是根据读取文件头信息获取真实文件类型的方法,方法备注很明确就不多说了。...
  • Java依据文件头获取文件类型

    千次阅读 2015-11-10 18:55:44
    ava根据文件头获取文件类型  文件头是位于文件开头的一段承担一定任务的数据,一般都... 为了解决在用户上传文件的时候在服务器端判断文件类型的问题,故用获取文件头的方式,直接读取文件的前几个字节,来判断上传
  • python 获取文件字符编码类型

    万次阅读 2017-09-01 16:31:46
    最后通过程序获取文件编码类型才发现,记事本的utf-8是带BOM的!要用utf-8-sig类型读取。 获取编码类型的示例程序:   import chardet # 获取文件编码类型 def get_encoding(file): # 二进制方式读取,获取...
  • 获取文件后缀名,获取文件类型

    千次阅读 2018-12-17 15:28:06
    file.name.substring(file.name.indexOf('.')+1).toLowerCase() 再补充一点,如果不要后缀名只要文件名: file.name.substring(0, file.name.indexOf('.')) //这样即可
  • Python 获取文件类型后缀

    万次阅读 2018-04-05 19:35:02
    import os path='file.txt' file=os.path.splitext(path) filename,type=file print(filename) print(type)点击打开链接 Python资料汇总
  • 从指定网络地址获取已知文件并保存到指定位置-指定文件名字和类型
  • Python获取文件编码类型

    千次阅读 2018-12-21 16:59:31
    # 获取文件编码类型 def get_encoding(file): # 二进制方式读取,获取字节数据,检测类型 with open(file, 'rb') as f: data = f.read() return chardet.detect(data)['encoding'] file_name = 'AA...
  • 获取File文件类型

    千次阅读 2017-11-30 19:49:18
    参考博客: org.apache.tika --java中利用tika判断文件类型 [url]... --va获取文件类型Mime Type的各种方法 [url]http://dada89007.iteye.com/blog/1392606[/url] --TIKA内容提取 ...
  • java 获取文件后缀名(文件类型

    千次阅读 2018-05-23 09:19:00
    java 获取文件后缀名(文件类型) CreateTime--2018年5月23日09:16:31 Author:Marydon // 获取文件名的后缀名(文件类型) String oldFileName = "UploadExcelController.java"; String fileType =...
  • MFC中有时候需要根据获取的文件路径信息来截取文件名,或者文件类型 已知文件路径:CString firstFilePath = "D:\wang jw\GreatWall\hexFileEncrypt\file_test\Sunroof_IAP_9843_2.hex"; 1、文件名获取方式为: ...
  • C++ 根据扩展名获取文件图标、类型

    千次阅读 2016-07-04 17:30:30
    在 Windows 系统中,根据扩展名来区分文件类型,比如:.txt(文本文件)、.exe(可执行程序)、.zip(压缩文件),下面,根据扩展名来获取对应的文件图标、类型。 简述 源码 源码 如下,我们根据扩展名来...
  • iOS 获取文件的MIMEType类型

    千次阅读 2016-08-01 17:00:57
    最近在做上传,需要将文件资源类型传给服务器,这样就可以判断文件是图片还是音视频等。 有两种方法可以实现NSURLSession和NSURLConnection,都是苹果原声网络请求类,但现在苹果不推荐使用NSURLConnection。如下: ...
  • 获取文件mime类型

    千次阅读 2018-08-20 10:19:47
    //通过servletContext获取文件的mime类型 public class ServletDemo8 extends HttpServlet { public void doGet (HttpServletRequest request, HttpServletResponse response) throws ...
  • Android获取下载文件名称及类型

    千次阅读 2018-04-25 16:18:56
    最近项目中做下载功能遇到个比较淡疼的问题:一般我们下载一个文件,都会在直接知道文件类型及名称,或者通过读取response header获取到文件名称及类型,but,service开发小伙伴比我还懒,懒得在header中携带这些...
  • java获取文件MIME类型

    万次阅读 2016-11-23 12:30:55
    最近这几天的工作中,由于自己一直在接触post上传文件发送请求,所以在这碰到了很多的问题,现在我们先来看看如何获取一个文件的MIME类型。那么先来解释下MIME的概念吧。 MIME(Multipurpose Internet Mail ...
  • java读取resourcejava读取resource目录下文件的方法: 借助Guava库的Resource类Resources.getResource("test.txt")通过文件名获取文件类型mongodbjava
  • java 获取文件类型

    千次阅读 2017-03-27 11:06:00
    之前使用 javax.activation.MimetypesFileTypeMap; 判断发现 如果文件是 office 文件 就...通过检测文件后缀名去查找文件类型显然不是一个健壮的方法。JMimeMagic库提供了更健壮的检测方法,他是一个通过检查magic head
  • 简述在C++根据扩展名获取文件图标、类型一节中我们分享了如何根据扩展名来获取对应的文件图标、类型,下面。我们在Qt中使用它。简述 示例 效果 源码 更多参考示例如下,我们根据扩展名来获取对应的文件图标、类型。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,603,050
精华内容 641,220
关键字:

获取文件地址文件类型