2015-01-12 7 views
8

अनदेखा किया गया है मैंने मीडिया रिकॉर्डर API का उपयोग करके एक मूल ऑडियो रिकॉर्डिंग ऐप बनाया है। मैं एसडी कार्ड में एक फ़ोल्डर बनाने और उस फ़ोल्डर में अपनी रिकॉर्ड की गई फ़ाइलों को सहेजने की कोशिश कर रहा हूं। मुझे यह चेतावनी निम्नलिखित कोड के साथ मिल रही है।चेतावनी: File.mkdir() को

File.mkdir()

// Assign random number to avoid audio file from overwriting 
    Long tsLong = System.currentTimeMillis()/1000; 

    // Specify a Location for the recorded file to be stored in the SD card 
    mFileName = Environment.getExternalStorageDirectory().getAbsolutePath() + "/AudioRecordTest/"; 
    File path = new File(mFileName); 
    if(!path.exists()) { 
     path.mkdir(); 
    } 
    mFileName += "/AudioRecordTest_" + tsLong.toString() + ".mp3"; 

यह चेतावनी संदेश को हल करने के लिए कैसे नजरअंदाज कर दिया है। अगर कोई अन्य गलती हो तो कोड को संशोधित करने के लिए स्वतंत्र महसूस करें।

+0

कोशिश @SuppressWarnings (: '/ AudioRecordTest' बजाय'/AudioRecordTest/' – Matteo

+0

क्या आपने अपनी 'AndroidManifest.xml' फ़ाइल में' WRITE_EXTERNAL_STORAGE' अनुमति को जोड़ना सुनिश्चित किया है? – Willis

+0

@ विलिस इसकी अनुमति नहीं है, मैंने इसे शुरुआत में जोड़ा है। –

उत्तर

9

मुझे सही अगर मैं गलत हूँ, लेकिन मैं उम्मीद करते हैं कि (संकलन) चेतावनी संदेश वास्तव में इस का कहना है: File.mkdir की

परिणाम()

नजरअंदाज कर दिया है ... या कुछ इस तरह का। यह आपको बता रहा है कि आप mkdir() कॉल के परिणाम को अनदेखा कर रहे हैं जो आपको बताता है कि निर्देशिका बनाई गई थी या नहीं।

चेतावनी से बचने का एक तरीका परिणाम का परीक्षण करना और उचित तरीके से कार्य करना होगा। एक और परिणाम केवल एक अस्थायी चर को असाइन करना होगा, इसे अनदेखा करें, और (संभावित रूप से) क्रैश बाद में क्योंकि निर्देशिका तब नहीं बनाई गई थी जब यह होना चाहिए था।

(लगता है जो समाधान के लिए बेहतर है ...) क्या कोई अन्य गलती है


कोड को संशोधित करने के लिए स्वतंत्र महसूस करें।

चूंकि आपने पूछा था ... यह जावा चर नामों के लिए हंगेरियन नोटेशन का उपयोग करने के लिए बाढ़ स्टाइल है। जावा एक दृढ़ता से टाइप की गई भाषा है जहां सभी चरों के स्पष्ट घोषित प्रकार होते हैं। आपको कुछ भयानक पहचानकर्ता सम्मेलन के मानसिक क्रश की आवश्यकता नहीं है ताकि आपको यह बताने के लिए कि एक चर का प्रकार क्या है। @Stephen सी पता चलता है

10

के रूप में, मैं इन तरीकों

1)

boolean isDirectoryCreated= path.mkdir();

और उपेक्षा 'isDirectoryCreated'

2) (अनुशंसित)

boolean isDirectoryCreated=path.exists(); 
if (!isDirectoryCreated) { 
    isDirectoryCreated= path.mkdir(); 
} 
if(isDirectoryCreated) { 
    // do something 
} 
में संभाला

3)

if (!path.exists()) { 
    if(path.mkdir()){ 
    // do something 
    } 
} 
0

आप, इस चेतावनी को अनदेखा पद्धति पर यह जोड़ना चाहते हैं: पिछले `/` बिना "सभी")

+0

और सुनिश्चित करें कि आप अपने जॉगलिंग सबक शुरू करने से पहले अपने कटलस को तेज करें :-) –

+0

चेतावनी उन्हें दबाने से हल नहीं होती है। – grant

संबंधित मुद्दे