How to execute "cd sdcard" command

by Karteek N » Thu, 22 Apr 2010 20:50:35 GMT


Sponsored Links
 Hi ,
I want to display what are the files and contents in sdcard through
application.
I am able to print the root folder.But when i execute cd sdcard
it throws me exception that permission is denied.
When i did the same thing using adb shell i am able to display the sdcard.
Is there any way to change permissions like sudo

I used the following code to display root folder

 Runtime rt = Runtime.getRuntime();
          try {
                   Process process;
                   process=rt.exec("ls");
                 try{
                          BufferedReader in =new BufferedReader(new
InputStreamReader(process.getInputStream()));

                         String line;
                         while ((line = in.readLine()) != null) {
                               Log.d("debug",line);
                                }
                          in.close();

                      } catch (Exception e) {
                              e.printStackTrace();
                             System.out.println(e.getMessage());
                       }


                   } catch (IOException e) {

                          e.printStackTrace();
                  }


But when change the above code like
  process=rt.exec("cd sdcard");
  process=rt.exec("ls");
Its throws exception

Any help please
Regards,
Karteek

--



How to execute "cd sdcard" command

by Mark Murphy » Thu, 22 Apr 2010 20:53:06 GMT


 


Why don't you use Java file I/O?

Forking processes to read the output of things like ls is wasteful of
CPU, wasteful of memory, wasteful of battery life, and slow, when you
have alternatives.

 http://exampledepot.com/egs/java.io/GetFiles.html 
 http://exampledepot.com/egs/java.io/TraverseTree.html 

-- 
Mark Murphy (a Commons Guy)
 http://commonsware.com  |  http://twitter.com/commonsguy 

_The Busy Coder's Guide to Android Development_ Version 3.0
Available!

--


Sponsored Links


How to execute "cd sdcard" command

by Bob Kerns » Fri, 23 Apr 2010 00:40:27 GMT


 Mark points out all the reasons you shouldn't even be trying to do
this.

But there's more! I assume you're going to take Mark's advice anyway,
but these are things that are likely to cause you trouble someday in
the future, so I'll point them out anyway.

First, you are trying to cd to some directory you have no reason to
believe exists. You don't have any idea what your current directory is
-- why should you expect it to have a 'sdcard' subdirectory? I expect
you meant "/sdcard" -- and that might work on your device. It might
not work on some other device, though. See this class for methods to
handle this cleanly:

 http://developer.android.com/intl/de/reference/android/os/Environment.html 
(You'll want to make use of this with Mark's advice, too).

And even if you did manage to cd to a directory named 'sdcard' -- it
would have NO EFFECT WHATSOEVER on the next command you execute!

You ran a shell and told it to do 'cd sdcard'. When it's done with
that, it exits. You no longer have a shell with that working
directory. Now you try to run 'ls' in a new shell. This new shell
doesn't care what you did in the old shell. It is NOT going to be
executing in your sdcard directory.

You could put these two commands into a .sh file, and execute that.
But what's the point? You could supply the same path directly to 'ls'.
Or even better, use the Java facilities for accessing the filesystem
and avoid all kinds of bugs you'd probably introduce -- like, for
example, handling spaces in filenames, etc.



>



How to execute "cd sdcard" command

by karteek » Fri, 23 Apr 2010 08:59:52 GMT


 hanks Marks,Bob.
Your help is really appreciated,
I will follow java i/o.

On Apr 22, 9:39pm, Bob Kerns <r...@acm.org> wrote:
> >



Other Threads

1. Trying to set toggleButton at right of text view

Hi,
I'm trying to put a toggleButton at right of a text view but AVD put
the button under of textview.
Could you help me please?

The layout is:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/
android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="4px"
        >
        <ImageView android:id="@+id/icon"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_alignParentTop="true"
                android:layout_alignParentBottom="true"
                android:layout_marginRight="4px"
        />
        <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                >
                <TextView android:id="@+id/programa"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:singleLine="true"
                        android:ellipsize="end"
                />
                <LinearLayout
                                android:layout_width="fill_parent"
                                android:layout_height="wrap_content"
                                android:orientation="vertical"
                                >
                                <ToggleButton
                                android:textOn="" android:textOff=""
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content">
                        </ToggleButton>
                </LinearLayout>
        </LinearLayout>
</LinearLayout>

Many thanks and sorry for my english!

-- 

2. Including shared library as part of apk build

Hi All,

 I'm having a hard time trying to include a shared library when I build my 
package. It doesn't seem to recognize the dependency. However, I can 
directly build the shared library. Here are both the makefiles. Would 
appreciate any help.

**** Android.mk ****
LOCAL_PATH      := $(call my-dir)
include $(CLEAR_VARS)

JAVA_DIR1    := code

LOCAL_SRC_FILES := \
        $(JAVA_DIR1)/test.java

LOCAL_SHARED_LIBRARIES := mylib

LOCAL_PACKAGE_NAME := myplayer

include $(BUILD_PACKAGE)
include $(LOCAL_PATH)/AndroidMylib.mk

**** AndroidMylib.mk ****
BASE_PATH       := $(call my-dir)
LOCAL_PATH      := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_PRELINK_MODULE := false

LOCAL_WHOLE_STATIC_LIBRARIES := \
                        lib_test1

LOCAL_MODULE := mylib

LOCAL_SHARED_LIBRARIES := \
                        libc \
                        libdl \
                        libm \
                        libstdc++ \
                        liblog

include $(BUILD_SHARED_LIBRARY)
include $(BASE_PATH)/src/Android_test1.mk

Best regards
HV

-- 

3. Programmatically use VPN on Android ?

4. Google Translate's new TTS feature

5. ANR Camera Button Long Press Event

6. Intent not received after application started

7. IllegalArgument Exception: Service is not registered