2016-11-19 58 views
0

我需要訪問本地服務器上的文件,並獲取它們的path以便在File對象中使用。如何訪問android中本地服務器上的文件?

  • 我不認爲我需要爲此使用HttpURLConnection,對嗎?

  • 另外,File file = new File(IPAddress)不起作用。
    其中IPAddress看起來像smb://192.168.1.xxx

  • file:///192.168.1.xxx工作爲IPAddress

我無法找到上網的地方都訪問本地服務器,並列出其文件實現一個解決方案。

那麼,如何從本地服務器獲取文件paths來執行File操作?



編輯1:

通過本地服務器我的意思是我的網絡,我有一個共享文件夾上的計算機。

而我正在構建一個應用程序,可以訪問該文件夾和其中的內容,並與他們做一些事情。

我正在面臨將文件路徑提取到共享文件夾內容的問題。

+1

'file://'用於本地文件系統。您可能需要一個'ftp'或'http'服務器來託管這些文件。 –

+0

請詳細解釋一下「本地服務器」的含義。 – CommonsWare

+0

@CommonsWare本地服務器我的意思是我的網絡上有一臺共享文件夾的計算機。 –

回答

0

感謝大家誰幫助...

我的答案可能有助於某人。

NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("", username, password); 
// username and password which you use for logging into your Windows PC 
SmbFile network; 

try { 
     network = new SmbFile("smb://servername or IPAddress", auth); 
     for (SmbFile node : network.listFiles()) { 

      // network path is now contained in 'node' 
     } 
    } catch (MalformedURLException e) { 
     e.printStackTrace(); 
    } catch (SmbException e) { 
     e.printStackTrace(); 
    } 

你必須在你的AndroidManifest.xml中<application>標籤之前添加
<uses-permission android:name="android.permission.INTERNET" />


並在Activity.java用於獲取訪問Internet上的API目標23(在Android 6.0)

ActivityCompat.requestPermissions(this /*context*/, new String[]{Manifest.permission.INTERNET}, MY_PERMISSIONS);和以上。

下載並納入您的項目jcifs-x.x.xx.jarSmbFileNtlmPasswordAuthentication類,從here