标签: mkdirs

C#相当于Java的mkdirs()

我正在尝试将Java程序转换为c#.

有没有相当于Java的mkdirs()命令递归生成文件夹?

c# java mkdirs

19
推荐指数
1
解决办法
7539
查看次数

将文件保存在内部存储android中

我是Android的新手,当我尝试将文件保存到内部存储器时,我遇到了问题,新的示例适用于我的sdk,但不适用于我的手机.

我正试图在一个索尼爱立信xperia中运行de示例,顺便说一下android 2.1 ... log.i - 给了我下一行:

/data/data/com.example.key/files/text/(my_title) 
Run Code Online (Sandbox Code Playgroud)

谢谢.

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);

            setContentView(R.layout.new_text);

            file = (EditText) findViewById(R.id.title_new);
            entry = (EditText) findViewById(R.id.entry_new);

            btn = (Button) findViewById(R.id.save_new);
            btn.setOnClickListener( new OnClickListener() {

                @Override
                public void onClick(View v) {

                    File myDir = getFilesDir();


                    NEWFILENAME = file.getText().toString();
                    if (NEWFILENAME.contentEquals("")){
                        NEWFILENAME = "UNTITLED";
                    }
                    NEWENTRY = entry.getText().toString();

                    try {

                        File file_new = new File(myDir+"/text/", NEWFILENAME);
                        file_new.createNewFile();

                        Log.i("file", file_new.toString());

                        if (file_new.mkdirs()) {
                            FileOutputStream fos = new FileOutputStream(file_new);

                            fos.write(NEWENTRY.getBytes()); …
Run Code Online (Sandbox Code Playgroud)

android local-storage mkdirs

16
推荐指数
1
解决办法
7万
查看次数

android mkdirs无法正常工作

我需要在Android上保存相机中的图像.我在清单中使用了写入外部存储权限,我正在使用此代码

File dir = new File(Environment.getExternalStorageDirectory(), "Test");
if (!dir.exists() || !dir.isDirectory())
    dir.mkdirs();

String path = dir.getAbsolutePath();
Log.d(TAG, path);                     //log show the path
File file = new File(dir.getAbsolutePath() + "/Pic.jpg");
Log.d(TAG, file.getAbsolutePath());   //again path is shown here

outStream = new FileOutputStream(file);
outStream.write(bytes);
outStream.close();
Log.d(TAG, "onPictureTaken - wrote bytes: " + bytes.length);   //fail here
} catch (FileNotFoundException e) {
Log.d(TAG, "not done");                       //error is here (this exception is thrown)
} catch (IOException e) {
Log.d(TAG, "not");
} finally {  }
Run Code Online (Sandbox Code Playgroud)

我也试过mkdir()而不是mkdirs()相同的结果.

知道代码中出了什么问题吗? …

android mkdirs

16
推荐指数
4
解决办法
1万
查看次数

mkdirs()返回已存在目录的值

File.mkdirs JavaDocs:

public boolean mkdirs()

创建此抽象路径名指定的目录,包括任何必需但不存在的父目录.请注意,如果此操作失败,则可能已成功创建一些必需的父目录.

返回:当且仅当创建目录时才返回true,以及所有必需的父目录; 否则是假的

我的问题是:如果它想要创建的某些目录已经存在,mkdirs()是否返回false?或者,如果它成功创建文件的整个路径,它是否只返回true,无论某些目录是否已经存在?

java file mkdirs

12
推荐指数
1
解决办法
6705
查看次数

蚂蚁的mkdir失败了.我该如何处理这个错误

我有的ANT构建脚本执行以下操作:

  1. 在Windows服务器上执行构建并压缩二进制文件
  2. 使用不同的凭据将具有不同凭据的网络驱动器映射到本地驱动器(ex P :) net use
  3. <mkdir>用来在挂载的驱动器上创建一个目录(P :)
  4. 将二进制文件复制到该驱动器

以下是我的代码 mkdir

<echo>Creating ${buildRequesterUserId} folder at mirroring site starts</echo>
<mkdir dir="P:\build_output\${buildRequesterUserId}"/>
<echo>Creating ${buildRequesterUserId} folder at mirroring site ends</echo>
Run Code Online (Sandbox Code Playgroud)

有时候文件夹的创建工作,有些时候失败并出现以下错误

creation was not successful for an unknown reason 并使构建失败

此错误随机发生.Mkdir工作了一段时间.我不确定为什么它会失败并且不确定它是否因为网络滞后而导致

我试图创建的目录可能已经存在,也可能不存在.我读到如果目录已存在,mkdir不会执行任何操作

我检查failonerror了mkdir 没有.我不希望构建因此而失败.

我已经copy部分处理了错误,但不知道如何处理这个错误mkdir

我怎样才能做到这一点?任何帮助,将不胜感激

问候

KARTHIK

java ant mkdirs

8
推荐指数
1
解决办法
1万
查看次数

Android mkdirs()创建一个零字节文件而不是文件夹

在我的Android应用程序中,我试图在SD卡上创建以下文件夹:

/mnt/sdcard/OSGiComponents/admin/felix-cache/
Run Code Online (Sandbox Code Playgroud)

这是代码:

File cacheDir = 
    new File( Environment.getExternalStorageDirectory().getAbsolutePath() + 
              "/OSGiComponents/admin/felix-cache/" );
// Create the folder
cacheDir.mkdirs();
// Check if it exists
if ( ! cacheDir.exists() ) {
    Log.e ( "Debug" , "Cache directory cannot be created" );
}
Run Code Online (Sandbox Code Playgroud)

我在android清单文件的清单标签下有WRITE_STORAGE_PERMISSION.我能够在SD卡上创建其他文件夹和文件而不会出现问题.该应用程序适用于以下手机:

  1. Nexus S(扎根)运行姜饼(2.3)
  2. 运行Jelly Bean的Nexus S(无根)(4.1​​.2)
  3. HTC Desire(rooted)运行Froyo(2.2)
  4. HTC Desire(无根)运行Froyo(2.2)

然而,在运行Ice Cream Sandwich(4.0.4)的三星Galaxy Nexus手机(无根)上,该目录被创建为零大小的文件,可以在Astro中看到.exists()调用返回false.

Astro显示零字节felix-cache文件

  1. 从文件夹名称可以看出,我正在使用Apache Felix.如果不存在,Felix会自动创建缓存目录.在Galaxy Nexus上,它总是抱怨它无法创建缓存目录.Astro显示0字节文件而不是文件夹.这就是我决定在初始化Felix之前尝试自己创建缓存文件夹的原因.
  2. 所以,我自己创建了缓存文件夹.该应用程序第一次正常工作,我可以在Astro中看到该文件夹​​正常.如果我关闭应用程序,然后删除Astro中的文件夹,然后重新启动应用程序,甚至我的代码神秘地无法创建缓存目录,Astro显示0字节文件.
  3. 无法在Astro中删除0字节文件.但是,当我重新启动手机时,该文件夹神奇地存在并且正常.
  4. 我使用FileInstall来观看OSGiComponents/install文件夹.当我将捆绑罐放入该文件夹时,它会在除Galaxy Nexus之外的所有手机上检测并安装好(当应用程序第一次运行时).FileInstall没有关于无法查看目录的日志/错误.
  5. 我在2台Galaxy Nexus手机上测试了这个,同样的问题.

我怀疑这是一个权限问题,但我不确定它是什么,以及为什么创建一个0字节文件而exists()返回false.代码中没有其他地方我创建这个文件.

关于可能出现什么问题的任何建议?

谢谢 :)

更新:我想我已经确定了问题,请看我发布的答案.

android apache-felix mkdirs

7
推荐指数
1
解决办法
3533
查看次数

多线程环境中的mkdirs()函数

我正在创建文件和文件夹树.我正在改写多线程.我看到的唯一弱点是创建文件夹时.现在它一个接一个(深入).在我写下文件之前,我会检查路径是否存在.如果没有,我使用mkdirs来创建所有缺失的东西.

public void checkDir(String relativePath) {
        File file = new File(homePath + relativePath);
        if (!file.exists()) {
            if (file.mkdirs()) {
                log.info("Directory: " + homePath + relativePath + " is created!");
            } else {
                log.error("Failed to create directory: " + homePath + relativePath + " !");
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我有一个问题,当我使用两个线程时会发生什么.一个有A/B/C路径,另一个有A/B/D. 假设我只有一个文件夹但不存在B.所以他们都会检查路径是否存在并且想要创建它.因此其中一个可能会失败,因为另一个会更快.那么我该如何管理呢?

  1. 我正在考虑删除存在的条件并让它失败但是没有AlreadyExists异常我可以抓住..
  2. 首先创建目录树(但我认为会有更好的方法吗?)
  3. 将目录创建作为关键部分并使其顺序 - 不确定如何在春季执行此操作,但无论如何确定它是必要的并且不会太慢地减慢过程.

也许我过分思考,但从理论上讲,这种情况可能会发生.目前我使用常规Thread,但我想使用spring TaskExecutor.它自己处理关键部分,但这不是共享变量或任何东西,路径是不同的,所以我认为它不会识别它.

谢谢你的建议.

java spring multithreading mkdirs

6
推荐指数
2
解决办法
2216
查看次数

SD卡中的android mkdirs返回false.help我,它花了我三天

我想在SD卡中创建一个文件夹,我已经添加了权限

<user-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)

在manifest file.below是我的代码,但mkdirs返回false!你能帮助我吗!

File exportDir = new File(
                Environment.getExternalStorageDirectory().toString(), "happydiarybackup");
        if (!exportDir.exists()) {
            boolean a = exportDir.mkdirs();
            Log.d("mkdir ",exportDir.getAbsolutePath() + " make "+ a);
        }
Run Code Online (Sandbox Code Playgroud)

android mkdirs

5
推荐指数
1
解决办法
2852
查看次数

删除文件夹后,mkdir()返回false

我的应用程序中有一个名为"重置"的按钮,用于删除整个文件夹(用户文件夹).在那之后,我试图再次创建相同的文件夹,第一次尝试它,它允许我创建文件夹,但第二次我尝试重置并重新创建用户文件夹,应用程序崩溃因为mkdir ()没有创建该文件夹,我试图在该文件夹上创建一个数据库.但是,奇怪的是,崩溃后,文件夹已经创建.

我有权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Run Code Online (Sandbox Code Playgroud)

我尝试了两种方法:

f.mkdir();
f.mkdirs();
Run Code Online (Sandbox Code Playgroud)

我有什么不对的?任何的想法?

android mkdir mkdirs

5
推荐指数
1
解决办法
816
查看次数

无法使用mkdirs在Android 6.0上创建目录(存储权限ok)

我正在尝试使用新的运行时权限将我的应用源代码更新为Android 6.0.

但是,如果用户授予应用程序存储权限,则应用程序无法'onRequestPermissionsResult'使用该方法在方法中创建目录'mkdirs'.

在AndroidManifest.xml中我把'uses-permission':

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.xample.provasd"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="23" />

        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <!-- application, activity, etc -->
Run Code Online (Sandbox Code Playgroud)

然后在MainActivity中处理权限请求:

public void executeButton(View view){
        final String[] PERMISSIONS_STORAGE = { Manifest.permission.WRITE_EXTERNAL_STORAGE };
        //Asking request Permissions 
        ActivityCompat.requestPermissions(this,PERMISSIONS_STORAGE, 9);
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        boolean writeAccepted = false;
        switch(requestCode){
        case 9:
            writeAccepted = grantResults[0]==PackageManager.PERMISSION_GRANTED;
            break;
        }
        if(writeAccepted){
            String state = Environment.getExternalStorageState();
            if (Environment.MEDIA_MOUNTED.equals(state)) {
                File …
Run Code Online (Sandbox Code Playgroud)

storage android mkdirs

5
推荐指数
1
解决办法
1980
查看次数

标签 统计

mkdirs ×10

android ×6

java ×4

ant ×1

apache-felix ×1

c# ×1

file ×1

local-storage ×1

mkdir ×1

multithreading ×1

spring ×1

storage ×1