最近遇到一个需要选着文件和文件路径的需求和大家分享一下

Android10如何分享.txt(等文件)到微信 Android10如何分享.txt(等文件)到微信前言文件保存路径经过验证的文件路径AndroidManifest.xml最后一步 前言 最近有一个把应用中txt文件分享到微信的需求,踩了很多坑也搞了很久都快放弃了。解决了之后就想着记录一下方便一下后来者,毕竟我也是看了很多博客才完成的。分享文件我只尝试了txt文件,但其他的原理差不多,应该也是可以的。 这篇文章没有原理讲解,没有理论,只是解决问题。 (引用了一些博客,如有意见请联系我) 文件保存路径 Android10中不能在根目录下创建文件夹,看了一些博 阅读详情

方法的基类

using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using UnityEngine;
/// <summary>
/// 打开Windows窗口的基类
/// </summary>
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public class OpenFileName
{
    public int structSize = 0;
    public IntPtr dlgOwner = IntPtr.Zero;
    public IntPtr instance = IntPtr.Zero;
    public string filter = null;
    public string customFilter = null;
    public int maxCustFilter = 0;
    public int filterIndex = 0;
    public string file = null;
    public int maxFile = 0;
    public string fileTitle = null;
    public int maxFileTitle = 0;
    public string initialDir = null;
    public string title = null;
    public int flags = 0;
    public short fileOffset = 0;
    public short fileExtension = 0;
    public string defExt = null;
    public IntPtr custData = IntPtr.Zero;
    public IntPtr hook = IntPtr.Zero;
    public string templateName = null;
    public IntPtr reservedPtr = IntPtr.Zero;
    public int reservedInt = 0;
    public int flagsEx = 0;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public class OpenDialogDir
{
    public IntPtr hwndOwner = IntPtr.Zero;
    public IntPtr pidlRoot = IntPtr.Zero;
    public string pszDisplayName = null;
    public string lpszTitle = null;
    public uint ulFlags = 0;
    public IntPtr lpfn = IntPtr.Zero;
    public IntPtr lParam = IntPtr.Zero;
    public int iImage = 0;
    
}
public class LocalDialog

{
    //链接指定系统函数       打开文件对话框
    [DllImport("Comdlg32.dll", SetLastError = true, ThrowOnUnmappableChar = true, CharSet = CharSet.Auto)]
    public static extern bool GetOpenFileName([In, Out] OpenFileName ofn);
    public static bool GetOFN([In, Out] OpenFileName ofn)
    {
        return GetOpenFileName(ofn);
    }

    //链接指定系统函数        另存为对话框
    [DllImport("Comdlg32.dll", SetLastError = true, ThrowOnUnmappableChar = true, CharSet = CharSet.Auto)]
    public static extern bool GetSaveFileName([In, Out] OpenFileName ofn);
    public static bool GetSFN([In, Out] OpenFileName ofn)
    {
        return GetSaveFileName(ofn);
    }

    [DllImport("shell32.dll", SetLastError = true, ThrowOnUnmappableChar = true, CharSet = CharSet.Auto)]
    public static extern IntPtr SHBrowseForFolder([In, Out] OpenDialogDir ofn);

    [DllImport("shell32.dll", SetLastError = true, ThrowOnUnmappableChar = true, CharSet = CharSet.Auto)]
    public static extern bool SHGetPathFromIDList([In] IntPtr pidl, [In, Out] char[] fileName);

}

方法类直接调用就可以


using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using UnityEngine;

public class  FilePathHelper
{
    private static string filePath;

    /// <summary>
    /// 选择文件路径
    /// </summary>
    /// <returns>文件路径</returns>
    public static string SelectFilePath()
    {
        OpenFileName openFileName = new OpenFileName();
        openFileName.structSize = Marshal.SizeOf(openFileName);
        openFileName.filter = "All Files\0*.*\0\0"; ;
        openFileName.file = new string(new char[256]);
        openFileName.maxFile = openFileName.file.Length;
        openFileName.fileTitle = new string(new char[64]);
        openFileName.maxFileTitle = openFileName.fileTitle.Length;
        openFileName.initialDir = UnityEngine.Application.streamingAssetsPath.Replace('/', '\\');//默认路径
        openFileName.title = "窗口标题";
        openFileName.flags = 0x00080000 | 0x00001000 | 0x00000800 | 0x00000008;

        if (LocalDialog.GetSaveFileName(openFileName))
        {
            Debug.Log(openFileName.file);
            filePath = openFileName.file;
            return filePath;

        }
        return null;
    }

    /// <summary>
    /// 选择文件储存路径
    /// </summary>
    /// <returns>路径</returns>
    public static string SelectStorePath()
    {
        OpenDialogDir openDialogDir = new OpenDialogDir();
        //存放目录路径缓冲区
        openDialogDir.pszDisplayName = new string(new char[2000]);
        openDialogDir.lpszTitle = "文件路径";
        IntPtr pidlPtr = LocalDialog.SHBrowseForFolder(openDialogDir);
        char[] charArray = new char[2000];
        for (int i = 0; i < 2000; i++)
        {
            charArray[i] = '\0';
        }
        LocalDialog.SHGetPathFromIDList(pidlPtr, charArray);
        string fullDirPath = new string(charArray);
        fullDirPath = fullDirPath.Substring(0, fullDirPath.IndexOf('\0'));

        if (MainControl.isDebug == true)
        {
            Debug.Log(fullDirPath);
        }
        if (fullDirPath == string.Empty)
        {
            return null;
        }
        return fullDirPath;
    }
    
}
【Neo4j × Python】基于知识图谱的电影问答系统(含问题记录与解决)附:源代码(含Bug解决) 此前,曾介绍过Neo4j的一些基础知识,本篇将在PyCharm中与Neo4j建立关联,从0到1实现一个基于知识图谱的电影问答系统,实现过程中,没有一帆风顺,而是遇到了一些问题,因此也包含问题的记录与解决。 阅读详情

相关推荐

【Vite+Vue3+TS】基于Vite+Vue3+TypeScript+ESLint+Prettier+Stylelint搭建项目(亲测超详细)

结合了很多项目和文章,总结一篇项目构建的笔记。 温馨提示:文章末尾记录了我在搭建项目过程中,遇到的一些问题和解决办法 ~

aDiaoYa_的博客 4231

unity3d调用windows系统dialog选择文件夹的方法

本来想百度找这个功能,百度了半天所有方法都试遍了,发现都只有选择文件和保存文件的方法,没有找到选择文件夹的方法,尼玛。 我只好参照选择文件的写法也写了个,看看能不能成功,果然成功了,我日!贴出来给大家参考吧。 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] public class OpenDialogFile {

8782

正负数据如何归一化_生信干货 | LC-MS代谢组学QI软件下机数据代谢物筛选和归一化如何做?...

上海·2019第一届多层组学前言技术发展华东区客户研讨会倒计时1天LC-MS非靶向代谢组学数据下机啦~~拿到一堆数据怎么办?不会高端代码,也不会自己写脚本,我怎么处理数据?​本期小编带来了LC-MS非靶向代谢组学下机数据处理实用干货,包括:下机定性结果表格的解析、代谢物筛选如何做?以及定量数据如何做归一化?实用干货,赶紧来抢~~话不多说,赶紧来学习吧~~非靶向LC-MS代谢组学的分析流程LC-MS...

weixin_36441329的博客 2983

Unity C# 打开windows对话框选择文件夹或选择文件

unity没有提供打开windows对话框的api,在开发种也会遇到选择系统文件夹或选择系统文件的需求。

快乐教主的博客 2584

史上最全的Logisim存储系统实验教程(基于华中科技大学计算机组成原理实验)内赋源码下载

本博客是最全的最好的解释的华中科技大学计算机组成实验存储系统实验,本博客给出了电路实现,也给出了使用电路的原因有利于新手学习十分详细。并且内赋源码下载。

qq_62325622的博客 2万+

成分数据的闭合效应对地球化学数据的影响及其解决方案

封闭效应 (Closure Effect),也称为常数和效应 (Constant Sum Effect),是地球化学数据分析中一个需要特别注意的统计现象。它的产生是由于我们通常使用成分数据 (Compositional Data)百分比 (%)百万分率 (ppm)由于这些数据表示的是各组分占总体的比例,它们的总和必然是一个常数 (例如 100% 或 1,000,000 ppm)。这意味着每个元素的含量不是独立的,而是与其他元素的含量相互制约。改变其中一个元素的含量必然会影响其他元素的相对比例。

qq_59349063的博客 1535

(转)OpenDialog的一个问题

一.常用属性 1.DefaultExt特性: 当用户未输入文件扩展名时它用于指明默认的扩展名。 2.FileName特性: 它为string型用于记录最后一个被选中的文件的全路径名。默认为空。 3.Filter(过滤器)特性: 它用于设置打开对话

找个地方放一下 3099

整理笔记——二极管

二极管是一种由半导体材料制成的一种具有单向导电性能的电子元器件,二极管的核心是PN结。加在二极管两端的电压和通关的电流被成为,二极管的伏安特性曲线​​​二极管的正向特性:起初正向电压较小时,正向电流几乎没有,称之为死区,此时二极管处于截止状态。当电压差超过截止电压(0.5V或者0.7V),电流随着电压上升,开始增加缓慢,随后急剧增大,二极管的电阻变小进入导通状态,此时电压变化较小。二极管的反向特性:起初反向电流很小,不随电压二变化,此时成为反向饱和电流;当方向电压达到二极管的反向击穿电压。

#include 811

C#选择文件、选择文件夹、打开文件(OpenDialog,FolderBrowserDialog)

1、选择文件用OpenDialog OpenFileDialog dialog = new OpenFileDialog(); dialog.Multiselect = true;//该值确定是否可以选择多个文件 dialog.Title = "请选择文件夹"; dialog.Filter = "所有文件(*.*)|*.*"; if (dialog.ShowDialog() == System.W...

weixin_40029679的博客 9208

[毕设项目-大模型微调]现代文翻译文言文【基于LLaMA3.1-8B微调】

教你基于LLaMA3.1-8B微调如何做到现代文翻译文言文

逐梦苍穹的博客 2296

手把手教你ensp仿真搭建校园网(含防火墙及无线网络)系列(三)校园无线网络AC+AP配置

本系列博客将带你从零开始,使用 华为 eNSP(Enterprise Network Simulation Platform) 仿真搭建一个完整的校园网络,涵盖 核心层、汇聚层、接入层、防火墙安全策略、无线AC+AP组网 等实战场景。无论你是网络初学者还是希望深化实战经验的工程师,都能通过本教程掌握企业级网络的规划、配置与排错技巧。

echo的博客 1357

unity3d调用windows系统dialog 选择文件夹的方法

using System; using System.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; using UnityEngine; public class OpenDialogFile1 : MonoBehaviour { [StructLayout(L...

猫叔的博客 2279

备赛电赛学习硬件篇(二):电源板电路设计

1、输入接口要准备各种接口,如2p端子,锂电池接口,typec等,提供多种电源供电方案2、输出接口3、自由拓展。

m0_61022809的博客 3213

VMware Workstation——虚拟机更换磁盘文件路径的方法总结

电脑用久了,文件越来越多,磁盘空间就变得紧张起来,原来的新建的Linux虚拟机磁盘文件是放在D盘下,最近加了块固态硬盘,想把Linux虚拟机磁盘文件改动新的磁盘下,节省下原来D盘的空间,这里总结下虚拟机更换磁盘文件路径的方法。

数字世界 万物互联 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Android 原生分享文件到微信

最近有一个分享文件的功能,记录下,除了分享文件,其他功能来之网络. import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.conten...

走着学磔的专栏 4825

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Android文件路径解析入门指南

通过这次学习,我不仅理解了路径的含义,还掌握了如何在Android中访问和操作文件系统。虽然一开始觉得有点复杂,但拆解后其实并不难。希望这篇笔记能帮助到同样在学习Android开发的朋友们!如果你对Android开发感兴趣,可以试试InsCode(快马)平台,它提供了便捷的在线编辑和预览功能,无需安装即可快速上手。我在上面尝试了一些小项目,发现操作非常流畅,特别适合新手入门。

GoldenleafRaven13的博客 2716

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

微信文件分享的那些坑

微信文件分享,记录了我踩过的坑,分享给大家,希望大家不要再踩坑了。

qq_34706837的博客 5583

一些常用到的文件路径相关的API

      最近的工作涉及到很多文件操作,经常要把文件挪来挪去什么的,这免不了对文件路径、文件名、甚至文件的类型名称 都要做大量的判断和“格式化”,于是,写了一堆的通过字符串操作来做这些工作的函数。可是后来无意间发现windows很多相关的API,所以贴出来供大家分享,同时也算是一个知识的整理。转自:http://blog.yesky.com/blog/binjuny/archive/2006

俺想有栋房 3828

python实现选择文件_python如何实现文件路径的选择?

TkFileDialog文件选择、储蓄和路径选择示例概述我看着Tkinter概述文档,有三种类型的弹出对话框,现在TkFileDialog使用。tkFileDialog有三种形式:一是:askopenfilename(选项=价值,\u2026)这是\u201C开放\u201D\u2026#获取文件的绝对路径导入操作系统类GetPath: def get_path(自我、路径):(路径)返回r if...

weixin_42524792的博客 4358

【安全知识】——系统敏感文件路径汇总

总结了一下windows和linux的系统敏感路径,时不时看看,先混个眼熟哈哈,希望对你们也有帮助,建议收藏

Demo不是emo的博客 1万+

服务器内提取文件,linux命令如何提取文件夹内特定文件路径

linux命令如何提取文件夹内特定文件路径发布时间:2020-07-20 16:35:25来源:亿速云阅读:102作者:小猪栏目:服务器这篇文章主要为大家展示了linux命令如何提取文件夹内特定文件路径,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。最近需要实现自动化搜寻特定文件夹下的特定文件,并且需要分别保存文件路径与文件名。算然使用python的w...

weixin_39959569的博客 2909

如何用AI解析Android文件路径协议

提前规划好URI处理的边界条件使用正规表达式时要考虑性能文件预览功能要注意内存管理代码生成要考虑IDE的兼容性整个开发过程在InsCode(快马)平台上完成,它的在线编辑器和实时预览功能让调试变得很方便。最惊喜的是部署功能,一键就能把开发中的版本分享给同事测试,省去了搭建测试环境的麻烦。对于Android开发者来说,处理content URI是个常见需求。这个工具虽然简单,但确实能提升日常工作效率。如果你也有类似需求,不妨试试用AI辅助开发,相信会有不错的体验。

NightshadeEagle34的博客 3万+

pathlib模块:优雅处理文件路径的利器

一、什么是Pathlib?今天介绍Python中一个非常实用的模块——Pathlib。相比于使用传统的字符串操作,Pathlib可以让我们以更直观和优雅的方式处理文件路径。二、Path对象的创建frompathlibimportPath # 创建Path对象 path = Path('temp.py')三、Path属性和方法检查路径会否存在 path.exists() 检查路径是否为文件...

专注测试领域知识分享和技能提升 3973

AI如何解决Android文件路径管理的痛点?

你只需描述需求,比如"需要读取应用私有目录下的配置文件",AI就会生成完整的Kotlin代码,包括Context获取、路径构建、文件读取流处理等。AI工具会分析你使用的路径,自动检查manifest文件,提示缺少的权限声明。最近我尝试用AI来辅助解决这个问题,效果出乎意料地好,下面分享我的实践心得。遇到陌生目录结构时,AI能自动分析路径特征,识别出这是应用专属存储、共享存储还是媒体存储区域。后,它会立即提示可能的后续路径选项。更厉害的是,它还能实时验证路径是否存在,避免无效路径导致的运行时错误。

EmeraldEagle36的博客 513

聊聊.netcore采坑那一些事之系统时间and文件路径

聊聊.netcore采坑那一些事之系统时间and文件路径 Hi,小伙伴大家好,最近工作比较忙,很久没有和大家分享点东西了。这个周末都加了两天班。公司的新项目都是采用.netcore来开发,在开发过程中,也踩到了一些坑,在此先总结两个坑,这两个坑都是关于Linux(CentOS)和windows下的兼容性问题。我们最开始的开发环境接口调用一直是部署在windows环境运行一切正常,但是部署...

qq_35382207的博客 436

ArcGIS读取DWG文件路径问题

1、问题背景 最近接手同事留下的一个加载DWG的问题。测试时发现传入DWG文件路径,打开的时候死活报错。 如图: 2、分析步骤 1)怀疑是ArcEngine未授权,于是添加授权代码进行测试,未能解决。 2)使用AccessWorkspaceFactory打开.mdb文件进行测试,发现可以打开。 3)是不是组件版本的问题呢?修改组件引用方式,修改版本,不能解决。 4)发现Cad

a_dev的专栏 6749
上一篇: 最近适用unity连接数据库遇到一个问题“MySqlException: Packets larger than max_allowed_packet are not allowed”
Smliling
博客等级 码龄9年 3粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值