精华内容
参与话题
问答
  • Android N 之前的 Uri ...其他的文件Uri是file://, 表示这个是一个文件。这个uri是通过Uri.fromFile(File file)方法生成。 Android N 之前,这些uri可以传递到其他应用。 Android N 中共享文件 Android

    Android N 之前的 Uri

    常规Uri有两种:

    • 媒体文件的Uri是content://, 表示这是一个数据库数据。去数据库查询正常返回。
    • 其他的文件Uri是file://, 表示这个是一个文件。这个uri是通过Uri.fromFile(File file)方法生成。

    Android N 之前,这些uri可以传递到其他应用。

    Android N 中共享文件

    Android N 系统,Android 框架执行的 StrictMode,API 禁止向您的应用外公开 file://URI
    如果一项包含文件 URI 的 Intent 离开您的应用,应用会停止运行,并出现 FileUriExposedException异常。官方文档在Android 7.0 行为变更进行了详细说明

    android.os.FileUriExposedException: 
    file:///storage/emulated/0/Download/appName-2.3.0.apk exposed beyond app through Intent.getData()
    

    若要在应用间共享文件,您应发送一项 content://URI(代替file://URI),并授予 URI 临时访问权限。

    FileProvider这个类就是把一个文件File,转换为 content://URI的

    FileProviderContentProvider子类,所以FileProvider的使用方法,和ContentProvider使用基本上是一样的

    如何共享文件,简单5步:

    1、在AndroidManifest.xml中<application>标签下声明一个provider

    <provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="app的包名.fileProvider"
        android:grantUriPermissions="true"
        android:exported="false">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/file_paths" />
    </provider>
    

    注意:
    authorities:app的包名.fileProvider
    grantUriPermissions:必须是true,表示授予 URI 临时访问权限 ( readPermission, writePermission, and permission attributes)
    exportedtrue: The provider is available to other applications. false: The provider is not available to other applications.
    resource:自定义的xml文件(下面会介绍)

    2、在res目录下新建一个xml文件夹,并且新建一个file_paths的xml文件(如下图)

    这里写图片描述

    3、打开file_paths.xml文件,添加指定的分享目录:

    file_paths.xml 是这样的

    <?xml version="1.0" encoding="utf-8"?>
    <paths xmlns:android="http://schemas.android.com/apk/res/android">
        <root-path name="root" path="" />
        <files-path name="files" path="" />
        <cache-path name="cache" path="" />
        <external-path name="external" path="" />
        <external-files-path name="name" path="path" />
         <external-cache-path name="name" path="path" />
    </paths>
    

    在paths节点内部支持以下几个子节点,分别为:

    <root-path/> 代表设备的根目录new File("/");
    <files-path/>代表: Context.getFilesDir()
    <external-path/>代表: Environment.getExternalStorageDirectory()
    <cache-path/>代表: getCacheDir()
    <external-files-path>代表context.getExternalFilesDirs()
    <external-cache-path>代表getExternalCacheDirs()

    每个节点都支持两个属性:

    name:给这个访问路径起个名字
    path:需要临时授权访问的相对路径(.代表所有路径)

    <external-path
            name="external"
            path="pics" />
    

    path即为代表external-path目录下的子目录,目录为:Environment.getExternalStorageDirectory()/pics,其他同理。

    下面举一些例子:

    <?xml version="1.0" encoding="utf-8"?>
    <paths xmlns:android="http://schemas.android.com/apk/res/android">
    
        <!--代表外部存储区域的根目录下的文件 Environment.getExternalStorageDirectory()/DCIM/camerademo目录-->
        <external-path name="DCIM" path="DCIM/camerademo" />
        
        <!--代表外部存储区域的根目录下的文件 Environment.getExternalStorageDirectory()/目录-->
        <external-path path="." name="external_storage_root" />
        
        <!--代表外部存储区域的根目录下的文件 Environment.getExternalStorageDirectory()/Pictures/camerademo目录-->
        <external-path name="Pictures" path="Pictures/camerademo" />
        
        <!--代表app 私有的存储区域 Context.getFilesDir()目录下的images目录 /data/user/0/com.hm.camerademo/files/images-->
        <files-path name="private_files" path="images" />
        
        <!--代表app 私有的存储区域 Context.getCacheDir()目录下的images目录 /data/user/0/com.hm.camerademo/cache/images-->
        <cache-path name="private_cache" path="images" />
       
        <!--代表app 外部存储区域根目录下的文件 Context.getExternalFilesDir(Environment.DIRECTORY_PICTURES)目录下的Pictures目录-->
        <!--/storage/emulated/0/Android/data/com.xx.xxxxxx/files/Pictures-->
        <external-files-path name="external_files" path="Pictures" />
    
        <!--代表app 外部存储区域根目录下的文件 Context.getExternalCacheDir目录下的images目录-->
        <!--/storage/emulated/0/Android/data/com.xx.xxxxxx/cache/images-->
        <external-cache-path name="external_cache" path="." />
    </paths>
    

    下面的例子使用SDCard,代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <paths xmlns:android="http://schemas.android.com/apk/res/android">
        <external-path name="external" path="" />
    </paths>
    

    4、FileProvider API的使用

    /**
         * 打开相机拍照
         *
         * @param activity
         * @return
         */
        public static void openCamera(Activity activity) {
    
            String filename = new SimpleDateFormat("yyyyMMdd-HHmmss", Locale.CHINA)
                        .format(new Date()) + ".png";
    
            File pictureFile = new File(Environment.getExternalStorageDirectory(), filename );
            
            Intent mIntent = new Intent();
            mIntent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
    
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    
                Uri contentUri = FileProvider.getUriForFile(activity, "app的包名.fileProvider", pictureFile );
                //拍照结果输出到这个uri对应的file中
                mIntent.putExtra(MediaStore.EXTRA_OUTPUT, contentUri);
                //对这个uri进行授权
                //mIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                //对这个uri进行授权
                mIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
            } else {
                //拍照结果输出到这个uri对应的file中
                mIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(pictureFile ));
            }
            
            mIntent.putExtra(MediaStore.Images.Media.ORIENTATION, 0);
            activity.startActivityForResult(mIntent, REQUEST_CAMERA_IMAGE);
        }
    

    核心代码就这一行了~

    Uri contentUri = FileProvider.getUriForFile(activity, "app的包名.fileProvider", pictureFile );
    
    • 第二个参数就是我们在androidManife.xml 中的provider的参数authorities

    • 第三个参数是指定的文件File

    生成的uri:

    content://com.xuexuan.fileprovider/external/20171201-094017.png
    

    可以看到格式为:content://authorities/paths中name的值/文件的相对路径,即name隐藏了可存储的文件夹路径。

    这里需要多说一点,Uri 的最终路径,与file和path有很大关系

    如果file的路径完全包含path路径的,则显示path路径+文件的相对路径,如下:

    path路径 <external-path name="my_external" path="customscamera" />

    file路径 /storage/emulated/0/customscamera/1534305129374.jpg

    则 Uri 为:content://com.xuexuan.fileprovider/my_external/customscamera/1534305129374.jpg

    如果file的路径不完全包含path路径的,则显示文件的绝对路径,如下:

    path路径 <external-path name="my_external" path="123" />

    file路径 /storage/emulated/0/customscamera/1534305129374.jpg

    则 Uri 为:content://com.futureway.blealarm.fileProvider/profile_photo/storage/emulated/0/customscamera/1534305129374.jpg

    5、对URI进行授权

    第4步的代码,有一行注释是:对这个uri进行授权。

    授权有两种方式:

    1. Intent.addFlags,该方式主要用于针对intent.setData,setDataAndType以及setClipData相关方式传递uri的。
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
    

    2、使用函数进行授权和移除权限

    • grantUriPermission(String toPackage, Uri uri,
      int modeFlags)函数来进行授权

    • revokeUriPermission(Uri uri, int modeFlags);移除权限

    方式二较为麻烦,因为需要指定目标应用包名,很多时候并不清楚,所以需要通过PackageManager进行查找到所有匹配的应用,全部进行授权。不过更为稳妥~

    List<ResolveInfo> resInfoList = context.getPackageManager()
                .queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
    for (ResolveInfo resolveInfo : resInfoList) {
        String packageName = resolveInfo.activityInfo.packageName;
        context.grantUriPermission(packageName, uri, flag);
    }
    

    如果没有授权,可能会遇到这样的错误

    java.lang.SecurityException: Permission Denial: 
    opening provider android.support.v4.content.FileProvider 
            from ProcessRecord{18570a 27107:com.google.android.packageinstaller/u0a26} (pid=27107, uid=10026) that is not exported from UID 10004
    

    以下这两个问题,可参考这篇文章

    • 为什么在Android 7 设备上,Intent的action为ACTION_IMAGE_CAPTURE,不进行授权,不会遇到Permission Denial的问题

    • 为什么Android 4.4设备遇到权限问题,不通过addFlags这种方式解决

    错误分析

    报错

    java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/emulated/0/DCIM/camerademo/20170226_110056248725175.jpg
    

    分析

    在生成Uri 的时候,指定的文件所在的路径没有包含在path所指定的路径中

    疑惑

    遇到这样一个到现在没有理解的问题,在小米6,MIUI 9.0 上面,使用下面的代码,进行图片的裁剪。

    1、如果不使用下面的函数授权,就会出现java.lang.SecurityException: Permission Denial的错误

    2、使用了下面的函数授权,可以正常返回。但是返回的数据是null。但是在指定路径有裁剪后的照片输出。

    有大神知道问题的原因,帮忙在评论里指导我一下,十分感谢

         /***
         * 裁剪图片
         * @param activity Activity
         * @param uri 图片的Uri
         */
        public static void cropPicture(Activity activity, Uri uri) {
            Intent intent = new Intent("com.android.camera.action.CROP");
            intent.putExtra("crop", "true");// 才能出剪辑的小方框,不然没有剪辑功能,只能选取图片
            intent.putExtra("aspectX", 1); // 放大缩小比例的X
            intent.putExtra("aspectY", 1);// 放大缩小比例的X   这里的比例为:   1:1
            intent.putExtra("outputX", 120);  //这个是限制输出图片大小
            intent.putExtra("outputY", 120);
            intent.putExtra("return-data", false);
            //切图大小不足输出,无黑框
            intent.putExtra("scale", true);
            intent.putExtra("scaleUpIfNeeded", true);
            Log.e("FaceUtil", "图片path:" + uri.toString());
    
            File imageFile = new File(uri.getPath());
    
            //输出图片的路径
            File outputImageFile = new File(Environment.getExternalStorageDirectory(),
                    "picture" + System.currentTimeMillis() / 1000 + ".jpg");
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
    
                Uri contentUri = FileProvider.getUriForFile(activity, BuildConfig.APPLICATION_ID + ".fileProvider", imageFile);
                Uri outputUri = FileProvider.getUriForFile(activity, BuildConfig.APPLICATION_ID + ".fileProvider", outputImageFile);
    
                intent.setDataAndType(contentUri, "image/*");
    
    			//使用函数授权,所有的包名
                List<ResolveInfo> resInfoList = activity.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
                for (ResolveInfo resolveInfo : resInfoList) {
                    String packageName = resolveInfo.activityInfo.packageName;
                    activity.grantUriPermission(packageName, outputUri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
                }
    
                //裁剪后的图片,将被保存在这个uri中
                intent.putExtra(MediaStore.EXTRA_OUTPUT, outputUri);
            } else {
                //裁剪后的图片,将被保存在这个uri中
                intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(outputImageFile));
                intent.setDataAndType(uri, "image/*");
            }
    
            intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
            activity.startActivityForResult(intent, REQUEST_CROP_IMAGE);
        }
    

    参考:

    Android 7.0 行为变更 通过FileProvider在应用间共享文件吧

    https://developer.android.com/guide/topics/manifest/provider-element.html

    Android7.0须知–应用间共享文件(FileProvider)

    解决 Android N 7.0 上 报错:android.os.FileUriExposedException

    FileProvider无法获取外置SD卡问题解决方案 | Failed to find configured root that contains

    FileProvider 的使用(Failed to find configured root that contains/storage/emulated/0/DCIM/ )

    Android中Uri和Path之间的转换

    展开全文
  • Windows中的共享文件和文件服务器

    万次阅读 2018-10-17 11:59:02
    共享文件的设置 默认共享 关闭默认共享 关闭共享服务 共享文件夹权限 文件服务器资源管理器的搭建 文件共享是指主动地在网络上共享自己的计算机文件。一般文件共享使用P2P模式,文件本身存在用户本人的个人...

    目录

    共享文件的设置

    默认共享

    关闭默认共享

    关闭共享服务 

    共享文件夹权限

    文件服务器资源管理器的搭建


    文件共享是指主动地在网络上共享自己的计算机文件。一般文件共享使用P2P模式,文件本身存在用户本人的个人电脑上。大多数参加文件共享的人也同时下载其他用户提供的共享文件。有时这两个行动是连在一起的。在很早期的Windows中(Windows2000以下),文件共享服务是利用TCP的139端口实现的,服务名是SMB。后来,微软又把SMB改名为CIFS,并且使用的是TCP的445端口

    相关文章:Linux文件共享服务之Samba

    哪些用户能够共享文件夹

    • 普通用户是没有权限共享文件夹
    • Administrators 组的账号可以设置共享文件夹
    • Power user 组的账号也可以设置共享文件夹

    共享文件的设置

    共享文件服务端的设置

    1、文件共享服务器需要打开网卡上的 Microsoft 网络的文件和打印共享功能(这个功能默认是开启的)

    2、然后打开高级共享设置,启用网络发现和启用文件、打印机共享(实际上就是打开了TCP的445端口)

    3、选择要共享的文件,右键-->属性-->共享-->然后选择一个用户名去共享,然后就会有一个访问共享文件夹的路径

    隐藏共享文件的设置

    共享文件的时候选择高级共享,然后共享文件名后加一个 $,这样客户端默认看不到这个共享的文件夹,除非访问的时候加上共享文件名和$:  \\WIN-7\file$

    共享文件客户端的访问

    方法一:客户端运行窗口输入:\\WIN-7  或者  \\ip地址,然后用服务器的用户名和密码登录即可访问共享文件夹(看不到隐藏的共享文件夹)。

    方法二:客户端在文件夹窗口输入: \\WIN-7 或者  \\ip地址   ,然后用服务器的用户名和密码登录即可访问共享文件夹(看不到隐藏的共享文件夹)。

    方法三:打开文件夹窗口,点击我的电脑-->计算机-->映射网络驱动器,然后输入: \\WIN-7\file ,然后用服务器的用户名和密码登录即可访问共享文件夹。 (这种方法连接的时候要输入具体共享的文件名)

    客户端使用任意端口访问文件服务器的TCP 445 端口的共享资源

    方法四:在命令行中输入  net  use \\ip\c$  /u:administrator root 。然后在文件夹中打开即可

    默认共享

    默认共享是为管理员管理服务器的方便而设,其权限不能更改,只要知道服务器的管理员账号和密码,不管其是否明确共享了文件夹,都可以访问其所有的分区。 查看默认共享:net share 

    如图,那么黑客只要知道了服务器 Administrator 用户的密码就可以访问其默认共享文件夹了

     

    黑客还可以通过命令行把你的默认共享的盘符挂载到本地:net use k:  \\10.96.10.59\c$    把10.96.10.59计算机上的C盘挂载到本地的k盘,这里的认证用户只能是 administrator

    然后你可以看到本地多了一个k盘,这正是远程主机上的C盘

    net use 查看建立的文件共享

    要删除此共享的话:net  use k: /del

     关闭默认共享

    net share命令关闭默认共享

     很明显,这是非常危险的。所以我们一般都会关闭默认共享

    • net share ipc$    /delete              关闭ipc默认共享
    • net share admin$  /delete          关闭admin账户目录共享
    • net share  c$ /delete                  关闭c盘默认共享
    • net share  e$ /delete                关闭e盘默认共享

    用net share命令来删除,但是机器重启后共享会自动出现。所以我们可以将命令保存为.bat批处理文件,然后把这个批处理文件拖到“程序”→“启动”项,这样每次开机就会运行它,也就是通过net命令关闭共享。

    注册表关闭默认共享

    禁止C$、D$管理共享(如果没有则新建): 

    • HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/lanmanserver/parameters 
    • Name:AutoShareServer                
    • Type:DWORD              
    • Value:0    

    禁止ADMIN$缺省共享: 

    • HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/lanmanserver/parameters 
    • Name:AutoShareWks   
    • Type:REG_DWORD             
    • Value:0x0

    限制IPC$缺省共享:

    • HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa 
    • Name:restrictanonymous 
    • Type:REG_DWORD 
    • Value:0x0(缺省)          0x1 匿名用户无法列举本机用户列表             0x2 匿名用户无法连接本机IPC$共享        说明:不建议使用2,否则可能会造成你的一些服务无法启动,如SQL Server。

    关闭共享服务 

    更彻底点的,文件打印共享和共享文件,很多人用不到,可以直接停掉该服务。

    1. 直接关闭文件网卡上的 Microsoft 网络的文件和打印共享功能
    2. 关闭服务管理里面的Server服务

    共享文件夹权限

    用户必须拥有适当的共享权限才可以访问共享文件夹。共享权限的种类与其所具有的访问能力如下 

    共享权限和NTFS权限的联系和区别

    • 共享权限是基于文件夹的;NTFS 权限是基于文件的
    • 共享权限只有当用户通过网络访问共享文件夹时才起作用;NTFS 权限无论用户是通过网络还是本地登录使用文件都会起作用 
    • 共享权限与文件操作系统无关,只要设置共享就能够应用共享权限;NTFS 权限必须是NTFS 文件系统,否则不起作用 
    • 共享权限只有几种:读者,参与者,所有者;NTFS 权限有许多种,如读,写,执行,修改,完全控制等,我们可以进行非常细致的设置

    共享权限和 NTFS  权限的特点

    • 不管是共享的权限还是 NTFS 权限都有累加性。
    • 不管是共享权限还是 NTFS 权限都遵循“拒绝”权限超越其他权限。
    • 当一个账户通过网络访问一个共享文件夹,而这个文件夹又在一个 NTFS 分区上,那么用户最终的权限是它对该文件夹的共享权限与 NTFS 权限中最为严格的权限

    文件服务器资源管理器的搭建

    使用文件服务器资源管理器高级工具功能

    • 文件夹和卷设置配额
    • 主动屏蔽文件,并生成全面的存储报告

    角色,添加角色,选择文件服务,然后再选择文件服务器资源管理器,接着选择磁盘安装即可

    配额管理:配额管理在文件服务器资源管理器内是以磁盘或文件夹为单位,不论用户是谁,设置配的文件夹总量不允许超过目录配额的限制。

    文件屏蔽:可以限制文件夹存放的文件类型 可以指定某个文件夹的能够存放的文件类型,是基于文件的扩展名来控制的。 通过创建文件屏蔽来控制用户可以保存的文件类型以及在用户尝试保存未经授权的文件时生成通知。 定义可以应用于新的卷或文件夹以及可以在整个组织中使用的文件屏蔽模板。 创建增强文件屏蔽规则灵活性的文件屏蔽例外。

    相关文章:135、137、138、139和445端口

                      IPC$共享和其他共享(C$、D$、Admin$)

    展开全文
  • 工作组下的Windows server2016,我需要共享一个文件夹,除了everyone外无论是指派哪个用户,另一win10的电脑都无法打开这个共享,也没有提示权限,需要我输入用户名和密码。 求教这是哪里设置问题,谢谢。 [img=...
  • ubuntu与windows共享文件

    千次阅读 2017-07-02 00:47:01
    一、通过vmmare tool工具共享文件Ubuntu系列10.04、11.04、12.04等虚拟机中安装VMware Tools参考下面两篇文章。http://www.linuxidc.com/Linux/2012-05/60472p2.htmhttp://lixiyu.blog.51cto.com/4136883/1324141/我...
    一、通过vmmare tool工具共享文件
    Ubuntu系列10.04、11.04、12.04等虚拟机中安装VMware Tools参考下面两篇文章。
    http://www.linuxidc.com/Linux/2012-05/60472p2.htm
    http://lixiyu.blog.51cto.com/4136883/1324141/

    我的电脑是ubuntu12.04系统,安装vmware tool工具失败。
    解决方法:在软件中心中安装vmware client。通过mount命令可以共享,但是每次重启系统之后,就无法共享了,必须再输入mount命令。
    打开终端(热键:Ctrl+Alt+T),输入下面mount命令,这样打开window下share目录就可以共享文件了。
    sudo mount -t vmhgfs .host:/share /mnt/hgfs


    二、Samba共享文件
    1、Samba软件包的安装
    使用源安装,在终端中输入如下命令:
    sudo apt-get install samba
    sudo apt-get install smbclient
    2、配置Samba服务
    Samba服务器主要配置文件为/etc/samba/smb.conf,并且可以将NetBIOS名与主机的对应关系写在/etc/samba/lmhosts文件中。
    1)在ubuntu共享一个目录,新建一个共享目录(比如:/home/johnchen/smb-share)。
    2)在终端中输入:chmod -R go+rwx smb-share/ 可使Windows下用户对该共享目录拥有写权限。
    3)将建立好的目录的设置信息写入/etc/samba/smb.conf文件即可。
    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak       //修改配置文件之前最好做个备份
    使用 sudo gedit /etc/samba/smb.conf 打开配置文件
    将文件中的内容做如下相应修改:
    #security=user 后面添加:
    security=share
    在文件结尾添加如下行:
    [share]
    comment=this is Linux share directory
    path=/home/johnchen/smb-share
    public=yes
    writable=yes

    保存退出,启动Samba服务:
    sudo service smbd start
    如果想停止Samba服务:
    sudo service smbd stop

    在Windows下访问共享目录,运行窗口(热键:win+R)中输入
    \\192.168.16.111\share
    ubuntu查看ip地址,在终端中输入ifconfig
    这样就能以匿名用户访问共享目录share了。

    三、通过teamviewer、QQ工具共享文件。
    展开全文
  • “Windows访问windows“的共享文件 A设置共享文件夹:我们假设给A电脑设置共享文件,以便B访问,windows共享文件比较简单,直接在A电脑上右击要分享的文件,点击"属性"->"共享"->“共享”,在输入框输入guest...
    1. “Windows访问windows“的共享文件

            A设置共享文件夹:我们假设给A电脑设置共享文件,以便B访问,windows共享文件比较简单,直接在A电脑上右击要分享的文件,点击"属性"->"共享"->“共享”,在输入框输入guest点击添加就可以了。

            B访问共享文件:确保AB在统一局域网下(后面有怎么设置在同一局域网下),然后在B电脑上win+R在框内

    输入:\\192.168.191.1敲回车(这是A电脑的IP,可以在A电脑终端输入ipconfig查看),就可以看到共享的文件夹了。

    2.“ubuntu访问windows”的共享文件

            Windows设置共享文件的方法上面已经说过,所以这里介绍怎么在ubuntu中访问共享的文件,在Ubuntu中打开file,在file窗口的左侧栏里最下面找到Connect to Server(在此之前你要确保自己安装了Samba工具并在终端启动了它,Samba工具的安装在后面有介绍),双击打开,在弹出的窗口的Server Address里输入:smb://192.168.191.1/点击Connect就可以了。

    3.“Windows访问Ubuntu”的共享文件

            在Ubuntu中设置共享文件:右击要共享的文件,点击Local Network Share,将三个勾全打上,点击Create Share就可以了(还是要强调,在此之前确保Samba安装并启动了,后面有Samba安装配置过程);

            在Windows中访问共享文件:win+R,输入ubuntu电脑的ip地址(可以在Ubuntu系统终端输入:ifconfig -a查看),敲回车就可以看到共享文件了。

            4:怎么设置两个电脑在同一个局域网下

            最快捷的方法就是:让两个电脑连同一个wifi,或者一个电脑开wifi给另一个电脑用;

            怎么确认两个电脑在同一个局域网内呢:IP的前三“位”都相同,就例如我上面举的例子,两个电脑的IP就分别是:192.168.191.1和192.168.191.2。

            5:安装Samba

            Samba介绍:Ubuntu本身不带文件共享功能,要实现共享文件,必须安装辅助工具,我们用Samba;

            Samba安装:打开ubuntu终端,输入sudo apt-get install samba samba-common回车输入y回车,安装成功;

            Samba图形化配置工具安装:sudo apt-get install samba samba-common system-config-samba python-glade2 gksu,安装成功后,在Unity Dash中搜索Samba并打开,开始配置共享文件:点击绿色+号,Directory直接选中你要共享的文件夹,两个勾全打上,点击ok,Access设置为Allow access to everyone点击OK;接下来点击Preference->Samba Users->Add User,在Windows Username中随便输入一个英文名字,在Samba Password中输入密码(其实没什么用但是要设置):123,确认密码123点击OK就可以了;在终端启动Samba服务:sudo service smbd restart,接下来就可以在windows或者ubuntu系统上访问共享文件夹了。

     

    展开全文
  • VirtualBox共享文件

    千次阅读 2013-09-29 16:57:13
    VirtualBox 共享文件 host:windows7 guset:ubuntu13.04 1.在virtualbox管理器中打开“管理(F)”-〉“虚拟介质管理(v)”-〉查看虚拟光盘,可以查看到VBoxGuestAdditions.iso的位置 2.在virtualbox管理器中打开...
  • 监控共享文件

    千次阅读 2007-08-19 14:26:00
    监控共享文件 由于经费等多种原因的限制,不少办公室的电脑是多人合用的,本地用户经常需要相互共享文件。出于保密等多方面的原因,不少文件往往要求只能查看不能修改,或者只允许特定用户修改或查看,此时使用一般...
  • 共享文件系统

    千次阅读 2011-12-05 15:08:42
    ​ 从使用角度看,共享文件系统几乎不用你考虑网络传输和访问的细节,完全可以像访问本地文件一样访问网络上其它服务器文件系统上的文件。这可以在一定程度上解决开始提的问题,即为集群中的多台实际服务器共享同一...
  • 解决vmtools已安装但还是不能共享文件、复制粘贴

    万次阅读 多人点赞 2018-07-25 17:43:59
    环境:win10专业版+VMware12.5.2 build-4638234+Ubuntu16.04 我换了个固态,新装win10重装虚拟机+ubuntu。这么熟练的事,折腾老子一天了,不知道为啥。...注意:宿主机(win10)下面先得把share文件设置成共...
  • 公司电脑统一使用域网络,全部可以访问服务器,但是个别电脑不能访问共享打印机,WIN10和WIN7的系统都有,打印机各种牌子都有,N个项目都出现这种问题,服务全部开启了,共享也开了,在网络上能发现主机,但是访问就...
  • 误把共享文件中的数据删除,我以为共享文件删除不影响原先数据,谁知道共享文件删了原先硬盘里的数据也消失了,求指教如何恢复,谢谢,
  • vmware连接ssh,虚拟机nat模式连接外网 vmware虚拟机连接ssh,vmware虚拟机连接网 ... vmware 通过ssh共享虚拟机文件,虚拟机ssh共享文件 1. 缘由/起因: 公司网络固定ip,我用了一个装有ubuntu的虚拟机(vm...
  • 我们使用树莓派的时候经常要在windows和树莓派之间进行文件传输,使用samba服务可实现文件共享。在windows的网上邻居即可访问树莓派文件系统,非常方便。 树莓派教程系列6:文件共享(samba) - 树莓派 微雪课堂
  • NextCloud如何共享文件

    万次阅读 2019-12-25 13:04:10
    2、选择要共享文件或者文件夹。点击对应文件或者文件夹图标右下角的 ... 按钮。出现一个菜单,如下图。选择“共享”。 3、共享菜单选择后,将出现如下界面, 这样,我们就可以开始选择共享用户。点击上图...
  • linux挂载共享文件

    千次阅读 2020-05-29 15:50:36
    挂载共享文件 sudo mount -t vboxsf VBoxG /home/hduser/win_share VBoxG: win下的文件夹名 /home/hduser/win_share:Linux下的文件路径
  • windows共享文件分析

    千次阅读 2018-06-12 09:11:44
    文件共享失败的原因以及解决办法  3.1 所在工作组不一样是否影响共享文件?  3.2 防火墙未正确设置  3.3 用户被禁用     3.3.1Guest用户被禁用    3.3.2其他用户被禁用的    3.4用户没有权限访问...
  • Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器...
  • 使用IIS 共享文件

    千次阅读 2018-04-25 10:56:02
    IIS是什么? Internet Information Services(IIS,互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP ...
  • 使用python共享文件

    千次阅读 2017-08-01 11:05:17
    那有没有一种通用的,快捷的共享文件方式呢?答案是肯定的,通过python,我们可以轻易的实现这一点。python -m SimpleHTTPServer [port]上述命令可以将当前目录作为一个文件服务器,服务器地址为你的ip:
  • mac linux 共享文件

    千次阅读 2018-09-28 15:33:19
    痛点 最近需要在Mac上远程连接一台Linux服务器,管理一些文件。不仅需要进行常规的本地文件操作,还需要上传、下载、编辑...它重新实现了SMB/CIFS协议,可以在各个平台共享文件和打印机。 1991年,还是大学生的And...
  • smb协议共享文件

    千次阅读 2016-06-30 10:33:44
    议,用于在计算机间共享文件、打印机、串口等。SMB 协议可以用在因特网的TCP/IP协议之上,也可以用在其它网络协议如IPX和NetBEUI 之上。 SMB 一种客户机/服务器、请求/响应协议。通过 SMB 协议,客户端应用程序可以...
  • VMware共享文件配置

    千次阅读 2018-09-22 23:53:14
    配置VMware共享文件夹三步搞定 一 设置宿主机上的共享目录&lt;给虚拟机共享&gt; 二 安装VMware-tools 具体执行命名(虚拟机上开启了挂起盘) ...将光盘挂载到/mnt/cdrom文件下,找到vmware-tools源码包...
  • xcopy 网络共享文件

    千次阅读 2010-02-05 16:05:00
    xcopy 复制文件和目录树。 XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W] [/C] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U] [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]
  • mac如何共享文件

    千次阅读 2010-03-25 09:36:00
    上网查了一番资料,原来mac的文件共享很简单的:在system preferences上,选择sharing, 点选file sharing即可,另外还可以设置用户的访问权限,但要注意everyone的权限,如果everyone的权限设置为n
  • 前些天在了解Git版本控制的时候,看到了“局域网下可以共享文件(阅读or修改)”。发现自己之前都没了解过这个,虽然用着GitHub却对其来源的变化不甚了解。于是就动手操作了一下windows如何在局域网下共享文件。 对...
  • win10 共享文件夹 nplayer查看共享文件

    千次阅读 2019-01-30 10:43:54
    二、去网络和共享中心设置,如下所示: 三、先启用密码保护共享,设置电脑用户密码。 四、打开手机端的nplayer,点击网络,右上角+,扫描网络,找到你电脑的名称(不知道名称的,此电脑-属性可以找到)。...

空空如也

1 2 3 4 5 ... 20
收藏数 86,026
精华内容 34,410
关键字:

共享文件